Tomcat 7.0.73不适用于Java 9

lea*_*ner 16 java tomcat tomcat7 java-9

由于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.
Run Code Online (Sandbox Code Playgroud)

有没有解决这个问题?

Chr*_*ltz 19

你必须破解脚本才能使它bin/catalina.sh工作.

这里有很多这样的行bin/catalina.sh:

  exec "$_RUNJDB" "$LOGGING_CONFIG" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
    -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \
    ...
Run Code Online (Sandbox Code Playgroud)

-Djava.endorsed.dirs在每种情况下,只需删除第二行(有一行)即可恢复营业.

我正在考虑改进这些脚本,以便-Djava.endorsed.dirs在值为空时不提供给JVM(如果使用Java 9则应该如此).

更新2017-11-06

看起来像r1810284应该解决endorsed.dirs问题.预计此修复程序将包含在Tomcat 7.0.83中(或者下一个7.0.x版本通过投票时).

更新2018-03-07

包含此修复程序的Apache tomcat 7.0.x的第一个正式版本是Apache Tomcat 7.0.84,在2018-01-24投票稳定.