Tomcat 7.0.73不适用于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.
有没有解决这个问题?
你必须破解脚本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
),您就应该重新开始工作。
我正在考虑改进这些脚本,以便在值为空时不向JVM提供-Djava.endorsed.dirs
(如果您使用的是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投票稳定。
上述问题已在Eclipse的后续版本中修复,但不幸的是,随着Java 10的发布再次出现。这是我的研究:最初,我安装了Java 10和Eclipse Oxygen 3,这给了我在你的问题中提到的相同错误。 但是,目前我安装了Java 9并将我的Apache tomcat运行时服务器指向它,错误消失了。
在我的例子中,我为回答Tomcat未运行的问题所做的是设置具有较低Java版本的Tomcat(版本7)(例如Java 8)。
然后,在startup.sh , shutdown.sh和catalina.sh中添加了以下内容:
export JAVA_HOME=`/usr/libexec/java_home -v 1.8`;
-Djava.endorsed.dirs = C:\ Program Files \ Apache Software Foundation \ Tomcat 9.0 \ endorsed不受支持。 通过可升级模块的概念,将支持模块化forms的认可标准和独立API。
要修复此错误,您需要安装/更新Eclipse Web Tools Platform(WTP)到V3.9.4或更高版本。
选择“帮助”>“安装新软件”…选择或添加以下URL: http : //download.eclipse.org/webtools/repository/oxygen检查Web工具平台(WTP)3.9.4选择“下一步”并按照说明操作
在eclipse中重新配置tomcat。