我正在学习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
,但这并不能解决我的问题。
答案 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
即可更正加载顺序。