由于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
中有很多这样的行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
我正在考虑改进这些脚本,以便-Djava.endorsed.dirs在该值为空时不将其提供给JVM(如果您使用的是Java 9,则应该是这种情况)。
更新2017-11-06
看起来r1810284应该可以解决endorsed.dirs问题。预期此修补程序将包含在Tomcat 7.0.83中(或以后的7.0.x版本通过投票的任何版本)。
endorsed.dirs
更新2018-03-07
包含此修复程序的Apache tomcat 7.0.x的第一个正式版本是Apache Tomcat 7.0.84,投票定于2018年1月24日稳定。