jackrabbit-调用javac时发生错误。需要完整的JDK(不仅仅是JRE)

时间:2018-07-03 09:16:39

标签: jcr jackrabbit

我正在学习Jackrabbit,并按照documentation运行独立服务器。当我运行命令java -jar jackrabbit-standalone-2.16.2.jar并在浏览器中访问localhost:8080时,出现500错误:

  

org.apache.jasper.JasperException:PWC6345:调用javac时出错。需要完整的JDK(不仅仅是JRE)

我在做什么错了?

注意:我已经在环境变量中设置了jdk/bin路径。此外,我的javac命令正常运行。我有jdk版本1.8.0_74和Jackrabbit版本2.16.2

编辑:根据this的答案,我尝试将Eclipse的jdk设置为installed jres,但这并不能解决我的问题。

3 个答案:

答案 0 :(得分:1)

在我的机器上运行最新的jackarabit独立jar(2.17.3)(Windows 10和java8 jdk中的java home指向)产生了相同的错误。

然后我用java -Djava.home="%JAVA_HOME%" -jar jackrabbit-standalone-2.17.3.jar执行了rar。尽管我在浏览器中遇到了相同的错误,但在调用运行命令的控制台中仍能看到错误。

其中一个错误是 can't open C:\Progra~1\Java\jdk1.8.0_144\lib\tzmappings

搜索我的Java安装时,我发现丢失的文件位于jre的安装文件夹下。

因此,我最终制作了独立的jar来使用: java -Djava.home="%JAVA_HOME%\jre" -jar jackrabbit-standalone-2.17.3.jar

最初的错误有点误导,因为它引用的是javac而不是丢失的文件。

整个事情对我来说似乎是个错误。请尝试我的解决方法,如果对您有用,请考虑在Jackrabbit's issue tracker platform中提交错误。

答案 1 :(得分:0)

jackrabbit-standalone使用JSP。 JSP需要编译。编译需要JDK。

在运行java -jar jackrabbit-standalone-2.16.2.jar之前,您是否检查过JAVA_HOME,并确保它引用的是成熟的JDK?简而言之,bin目录应具有javac

答案 2 :(得分:0)

我发现Path变量之前的%JAVA_HOME%\bin环境系统变量中还有另一个变量。

您不必删除其他变量,只需向下移动(或向上移动%JAVA_HOME\bin即可更正加载顺序。