我正在学习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的回答,我尝试在日食中将我的jdk设置为我的installed jres
,但这并没有解决我的问题。
在我的机器中运行最新的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提交一个错误。
jackrabbit-standalone
使用JSP。 JSP需要编译。编译需要JDK。
在运行java -jar jackrabbit-standalone-2.16.2.jar
之前,你检查你的JAVA_HOME
,并确保它指的是一个完全成熟的JDK?简而言之,bin
目录应该有javac
。
我发现在我的Path
变量之前的%JAVA_HOME%\bin
环境系统变量中有另一个变量。
您不必删除其他变量,而是将其向下移动(或向上移动%JAVA_HOME\bin
)以更正加载顺序。