无法运行Java EE动态Web项目:环境兼容问题求助
解决JDK10与Tomcat兼容性问题及Eclipse运行环境配置错误
我来帮你一步步解决这个问题——你遇到的核心问题是:虽然把Eclipse的编译级别改成了1.8,但运行项目时实际调用的JVM还是JDK10,而且Tomcat服务器的配置也没切换到JRE8,所以才会重复出现-Djava.endorsed.dirs的报错。下面是具体的修复步骤:
1. 配置Eclipse默认JRE为JRE8
- 打开Eclipse,进入
Window > Preferences > Java > Installed JREs - 检查列表中是否有JRE8的条目:
- 如果没有,点击
Add,选择Standard VM,找到你安装JRE8的目录(Antergos下通常路径类似/usr/lib/jvm/java-8-openjdk/),完成添加 - 勾选JRE8,点击
Apply and Close将其设为默认JRE
- 如果没有,点击
2. 为Tomcat8指定JRE8运行环境
- 进入
Window > Preferences > Server > Runtime Environments - 找到你配置的Tomcat8实例,点击
Edit - 在
JRE下拉菜单中选择刚才添加的JRE8,保存配置
3. 修正项目的构建路径与运行环境
- 右键你的Dynamic Web Project,选择
Properties > Java Build Path > Libraries - 查看
JRE System Library:- 如果指向的是JDK10,点击
Edit,选择Workspace default JRE (jre1.8.x)或手动指定JRE8
- 如果指向的是JDK10,点击
- 切换到
Project Facets标签:- 确保
Java版本设置为1.8,Dynamic Web Module版本与Tomcat8匹配(Tomcat8对应3.1版本)
- 确保
4. 清理Tomcat启动时的无效VM参数
- 打开Eclipse的
Servers视图,右键你的Tomcat8服务器,选择Open - 点击
Open Launch Configuration,切换到Arguments标签 - 检查
VM arguments中是否存在-Djava.endorsed.dirs=xxx的参数,若有直接删除(Tomcat8在JDK8环境下不需要该参数)
5. 清理并重新部署项目
- 右键项目,选择
Project > Clean,清理项目编译文件 - 右键Tomcat服务器,选择
Clean Tomcat Work Directory,清除旧的部署缓存 - 重新启动Tomcat并运行项目
补充说明
你之前修改编译器版本无效的原因是:编译器级别仅控制代码的语法兼容性,而项目实际运行时依赖的是JRE运行环境和服务器配置的JVM,这两处才是决定启动时使用哪个Java版本的关键。
内容的提问来源于stack exchange,提问作者Abdulrahman Hassoun
相关产品推荐
相关产品推荐

