Java 10环境下Apache Tomcat 9在Eclipse中启动失败,系统服务可正常运行
Java 10与Tomcat 9的兼容性及问题解决方案
首先明确:Apache Tomcat 9是支持Java 10的,Tomcat 9.0.x系列官方要求的最低Java版本是8,完全兼容Java 9、10等后续版本。你遇到的错误是因为Java 9及以上移除了endorsed.dirs这个系统参数,而Eclipse默认配置里还在传递这个参数导致的。
错误原因解析
Java 9引入了模块化系统(Project Jigsaw),移除了-Djava.endorsed.dirs这个参数,取而代之的是可升级模块(upgradable modules)的概念。而Eclipse在配置Tomcat启动时,默认会添加这个已废弃的参数,所以启动时就会抛出你看到的错误:
-Djava.endorsed.dirs=C:\Program Files\Apache Software Foundation\Tomcat 9.0\endorsedis not supported. Endorsed standards and standalone APIs in modular form will be supported via the concept of upgradable modules
具体解决方案
方法1:修改Eclipse中Tomcat的启动配置
- 打开Eclipse,找到Servers视图,右键点击你的Tomcat 9服务器实例,选择Open
- 在打开的服务器配置页面,找到Open launch configuration(在页面底部的“General Information”区域)
- 在弹出的“Edit Configuration”窗口中,切换到Arguments标签页
- 在VM arguments输入框中,找到并删除包含
-Djava.endorsed.dirs=...的那一行 - 点击Apply和Close,然后重启Tomcat服务器即可
方法2:更新Tomcat的配置文件(可选,全局生效)
如果不想每次在Eclipse里单独修改,也可以直接调整Tomcat的全局配置:
- 找到Tomcat安装目录下的
conf/catalina.properties文件 - 打开该文件,找到
java.endorsed.dirs这一行,将其注释掉(在行首添加#) - 保存文件后,回到Eclipse刷新服务器配置,再启动即可
额外提示
确保你的Eclipse版本是较新的(比如2018-09或更高版本),旧版本的Eclipse对Java 9+和Tomcat 9的兼容性可能存在缺陷,更新Eclipse可以避免更多类似的配置问题。
内容的提问来源于stack exchange,提问作者Jyoti Jadhav




