Tomcat 7.0.73 不适用于 java 9
Tomcat 7.0.73 doesn't work with java 9
无法使用 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.
有解决办法吗?
您必须修改脚本 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 投票稳定。
就我而言,我为回答 Tomcat 而不是 运行 的问题所做的是将 Tomcat (版本 7)设置为较低的 Java 版本(例如 Java 8).
然后,在startup.sh、shutdown.sh和catalina.sh 我添加了以下内容:
export JAVA_HOME=`/usr/libexec/java_home -v 1.8`;
以上问题已在更高版本的 Eclipse 中修复,但不幸的是,随着 Java10 的发布,它再次出现。这是我的研究:
最初,我安装了 Java 10 和 Eclipse Oxygen 3,这给了我你在问题中提到的同样的错误。但是,在我安装 Java 9 并将我的 Apache tomcat 运行时服务器指向它的那一刻,错误消失了。
要修复此错误,您需要install/update将 Eclipse Web 工具平台 (WTP) 升级到 3.9.4 或更高版本。
Select 帮助 > 安装新软件...
Select 或添加以下内容 URL:http://download.eclipse.org/webtools/repository/oxygen
检查 Web 工具平台 (WTP) 3.9.4
Select "Next" 并按照说明进行操作
在eclipse中重新配置tomcat。
如果您的 Tomcat 运行时使用早于 Java 9 的 JRE 并创建和 运行 具有该 运行 时间的服务器,则可能会出现此症状。然后编辑 Tomcat Runtime 以使用 Java 9 并尝试启动服务器。当服务器为 运行 和较早的 JRE 时,会发生一个“-Djava.endorsed.dirs”参数被添加到启动配置。 运行切换到Java9后在服务器上运行时,“-Djava.endorsed.dirs”参数被视为用户添加的VM参数并保留,导致错误。
最简单的修复方法是重新创建服务器。您也可以在服务器视图中右键单击服务器,然后 select 打开。在打开的 window 中,单击“常规”部分底部的 "Open launch configuration" link。在打开的对话框中,切换到参数选项卡并在 "VM arguments" 部分中,编辑掉“-Djava.endorsed.dirs”参数并单击确定。您现在应该可以启动服务器了。
我不确定但是..
第一步-->
它对我有用,我只是从 eclipse
中删除服务器
第 2 步 -->
重新启动并再次添加服务器 (tomcat 7)
Tomcat v7.0 服务器位于本地主机
在 运行 配置 -> 参数 -> VM 参数
尝试删除
-Djava.endorsed.dirs="C:\Program Files\Apache Software Foundation\Tomcat 8.5\endorsed"
您必须删除 -
"-Djava.endorsed.dirs="/home/ttlaptop/Downloads/apache-tomcat-7.0.105/endorsed"
来自运行配置,然后tomcat将开始
无法使用 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.
有解决办法吗?
您必须修改脚本 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 投票稳定。
就我而言,我为回答 Tomcat 而不是 运行 的问题所做的是将 Tomcat (版本 7)设置为较低的 Java 版本(例如 Java 8).
然后,在startup.sh、shutdown.sh和catalina.sh 我添加了以下内容:
export JAVA_HOME=`/usr/libexec/java_home -v 1.8`;
以上问题已在更高版本的 Eclipse 中修复,但不幸的是,随着 Java10 的发布,它再次出现。这是我的研究: 最初,我安装了 Java 10 和 Eclipse Oxygen 3,这给了我你在问题中提到的同样的错误。但是,在我安装 Java 9 并将我的 Apache tomcat 运行时服务器指向它的那一刻,错误消失了。
要修复此错误,您需要install/update将 Eclipse Web 工具平台 (WTP) 升级到 3.9.4 或更高版本。
Select 帮助 > 安装新软件... Select 或添加以下内容 URL:http://download.eclipse.org/webtools/repository/oxygen 检查 Web 工具平台 (WTP) 3.9.4 Select "Next" 并按照说明进行操作
在eclipse中重新配置tomcat。
如果您的 Tomcat 运行时使用早于 Java 9 的 JRE 并创建和 运行 具有该 运行 时间的服务器,则可能会出现此症状。然后编辑 Tomcat Runtime 以使用 Java 9 并尝试启动服务器。当服务器为 运行 和较早的 JRE 时,会发生一个“-Djava.endorsed.dirs”参数被添加到启动配置。 运行切换到Java9后在服务器上运行时,“-Djava.endorsed.dirs”参数被视为用户添加的VM参数并保留,导致错误。
最简单的修复方法是重新创建服务器。您也可以在服务器视图中右键单击服务器,然后 select 打开。在打开的 window 中,单击“常规”部分底部的 "Open launch configuration" link。在打开的对话框中,切换到参数选项卡并在 "VM arguments" 部分中,编辑掉“-Djava.endorsed.dirs”参数并单击确定。您现在应该可以启动服务器了。
我不确定但是..
第一步--> 它对我有用,我只是从 eclipse
中删除服务器第 2 步 --> 重新启动并再次添加服务器 (tomcat 7) Tomcat v7.0 服务器位于本地主机
在 运行 配置 -> 参数 -> VM 参数 尝试删除
-Djava.endorsed.dirs="C:\Program Files\Apache Software Foundation\Tomcat 8.5\endorsed"
您必须删除 -
"-Djava.endorsed.dirs="/home/ttlaptop/Downloads/apache-tomcat-7.0.105/endorsed"
来自运行配置,然后tomcat将开始