安装Eclipse WTP后出现-Djava.endorsed.dirs不支持问题如何解决?
我之前在使用Tomcat 9搭配WTP开发时,也碰到过完全一样的问题!咱们一步步来解决:
问题根源拆解
首先说下这两个报错的关联:
- “无法创建Java虚拟机”大概率是因为JVM启动参数里存在过时且不被当前JDK支持的配置,加上可能内存参数设置不合理,导致启动失败。
- 控制台里的
-Djava.endorsed.dirs=...报错是核心原因:Java 9及以后的版本已经彻底废弃了endorsed.dirs这个参数,转而用模块化的升级机制,但WTP默认给Tomcat配置了这个过时参数,直接触发了启动失败。
具体解决步骤
1. 修复Eclipse中Tomcat的启动配置
这是最直接的解决方式:
- 打开Eclipse的「Servers」视图,找到你的Tomcat 9服务器实例,右键选择「Open」。
- 在打开的配置页面里,找到并点击「Open Launch Configuration」(部分版本可能显示为「Launch Configuration」)。
- 切换到「Arguments」标签页,在「VM arguments」区域里,找到并删除整行
-Djava.endorsed.dirs=C:\Program Files\Apache Software Foundation\Tomcat 9.0\endorsed。 - 顺便检查下内存参数,比如可以把
-Xmx设置为合理值(比如-Xmx512m或-Xmx1024m),避免内存不足导致的虚拟机创建失败。 - 保存配置,重启Tomcat试试。
2. 备份方案:修改Tomcat全局配置
如果上面的方法没生效,直接修改Tomcat的配置文件:
- 找到Tomcat安装目录下的
conf/catalina.properties文件。 - 找到
java.endorsed.dirs=${catalina.base}/endorsed,${catalina.home}/endorsed这一行,在前面加#注释掉它。 - 保存文件后,重启Eclipse和Tomcat。
3. 确认JDK与Tomcat版本兼容
Tomcat 9.0官方推荐的JDK版本是Java 8到Java 11,如果你用的是Java 12及以上版本,可能还会有其他兼容性问题。如果条件允许,建议切换到Java 11;如果必须用高版本JDK,可以考虑升级Tomcat到10.x(注意Tomcat 10.x用的是Jakarta EE规范,和之前的Java EE API有包名变化,需要调整项目依赖)。
最后提醒
修改完配置后,记得完全关闭Eclipse和Tomcat进程再重新启动,确保新配置生效。我当时就是改完没重启,白折腾了半天😂
内容的提问来源于stack exchange,提问作者Marjan100
相关产品推荐
相关产品推荐

