一尘不染

Tomcat 7.0.73不适用于Java 9

tomcat

由于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.

有没有解决的办法?


阅读 469

收藏
2020-06-16

共1个答案

一尘不染

您必须修改脚本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

看起来r1810284应该可以解决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日稳定。

2020-06-16