由于 catalina.sh 中的默认“java.endorsed.dirs”选项,无法使用 java 9 启动基于 tomcat 的应用程序。
-Djava.endorsed.dirs=/usr/local/share/tomcat/endorsed is not supported. Endorsed standards and standalone APIs in modular form will be supported via the concept of upgradeable modules.
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
有解决办法吗?
你必须破解脚本bin/catalina.sh
让它发挥作用。
有很多这样的行bin/catalina.sh
:
exec "$_RUNJDB" "$LOGGING_CONFIG" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
-Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \
...
只需删除其中的第二行(带有-Djava.endorsed.dirs
)在每种情况下,您都应该恢复营业。
我正在考虑改进这些脚本,以便-Djava.endorsed.dirs
当值为空时,不会提供给 JVM(如果您使用的是 Java 9,则应该是这种情况)。
更新2017-11-06
好像应该修复endorsed.dirs
问题。预计此修复将包含在 Tomcat 7.0.83 中(或下一个通过投票的 7.0.x 版本)。
更新2018-03-07
包含此修复的 Apache tomcat 7.0.x 的第一个正式版本是 Apache Tomcat 7.0.84,于 2018 年 1 月 24 日被投票稳定。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)