Tomcat 7.0.73 不适用于 java 9

2022-09-01 23:00:08

无法用java 9启动基于tomcat的应用程序,因为 catalina.sh 中默认的“java.endorsed.dirs”选项。

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

有没有解决这个问题的方法?


答案 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

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

更新 2017-11-06

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

更新 2018-03-07

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


答案 2

上述问题在 Eclipse 的后续版本中得到了修复,但不幸的是,随着 Java 10 的发布,它再次出现。这是我的研究:最初,我安装了Java 10和Eclipse Oxygen 3,这给了我你在问题中提到的错误。但是,在我安装Java 9并将我的Apache tomcat运行时服务器指向它的那一刻,错误已经消失了。


推荐