Tomcat7.0.73不适用于Java9

nom7f22z  于 2021-06-30  发布在  Java
关注(0)|答案(8)|浏览(283)

由于catalina.sh中的默认“java.endorned.dirs”选项,无法用Java9启动基于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.

有办法解决这个问题吗?

htrmnn0y

htrmnn0y1#

在我的例子中,为了解决tomcat不运行的问题,我所做的是将tomcat(版本7)设置为较低的java版本(例如java8)。
然后,在startup.sh、shutdown.sh和catalina.sh中,我添加了以下内容:

export JAVA_HOME=`/usr/libexec/java_home -v 1.8`;
0qx6xfy6

0qx6xfy62#

你得修改剧本 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提供(如果您使用的是java9,则应该是这种情况)。
更新2017-11-06
看起来r1810284应该可以修复 endorsed.dirs 问题。希望这个补丁包含在tomcat7.0.83中(或者下一个7.0.x版本通过的任何版本)。
更新2018-03-07
ApacheTomcat7.0.x的第一个官方版本包含了这个补丁,是ApacheTomcat7.0.84,在2018年1月24日投票稳定。

js5cn81o

js5cn81o3#

在运行配置->参数->虚拟机参数中尝试删除
-djava.赞同.Drs=“C:\程序文件\ Apache软件基金会\ Tomcat 8.5 \”

zour9fqk

zour9fqk4#

如果您有一个使用早于java9的jre的tomcat运行时,并使用该运行时创建和运行一个服务器,就会出现这种症状。然后编辑tomcat运行时以使用java9并尝试启动服务器。当服务器使用早期的jre运行时,会在启动配置中添加“-djava.endorned.dirs”参数。在切换到Java9之后运行服务器时,“-djava.endorned.dirs”参数被视为用户添加的vm参数并保留,从而导致错误。
最简单的修复方法是重新创建服务器。您也可以在servers视图中右键单击服务器并选择open。在打开的窗口中,单击“常规”部分底部的“打开启动配置”链接。在打开的对话框中,切换到arguments选项卡,在“vm arguments”部分中,编辑“-djava.endorned.dirs”参数并单击ok。现在应该可以启动服务器了。

mrzz3bfm

mrzz3bfm5#

上面的问题在后来的eclipse版本中得到了解决,但不幸的是,它在java10版本中再次出现。这是我的研究:最初,我安装了Java10和EclipseOxy3,这给了我和你在问题中提到的相同的错误。但是,当我安装Java9并将ApacheTomcat运行时服务器指向它时,错误就消失了。

tvz2xvvm

tvz2xvvm6#

要修复这个bug,您需要将eclipseweb工具平台(wtp)安装/更新到3.9.4或更高版本。
选择帮助>安装新软件。。。选择或添加以下url:http://download.eclipse.org/webtools/repository/oxygen 检查web工具平台(wtp)3.9.4选择“下一步”并按照说明操作
在eclipse中重新配置tomcat。

kh212irz

kh212irz7#

你必须移除- "-Djava.endorsed.dirs="/home/ttlaptop/Downloads/apache-tomcat-7.0.105/endorsed" 从runconfigurations,然后tomcat将启动

4urapxun

4urapxun8#

我不能肯定,但是。。
第1步-->它对我有效,我只是从eclipse中删除服务器
步骤2-->重新启动并再次添加服务器(tomcat 7)本地主机上的tomcat v7.0服务器

相关问题