MyEclipse Luna无法启动报NoClassDefFoundError错误该如何处理?
错误根因
该异常由JDK版本与MyEclipse Luna不兼容导致:MyEclipse Luna基于2014年发布的Eclipse 4.4内核开发,仅原生支持JDK8及更早版本。JDK9之后引入的模块化机制,将org.w3c.dom.stylesheets.StyleSheet类从默认公开类路径移入了jdk.xml.dom私有模块,老版本的Eclipse CSS核心插件无法正常加载该类,因此启动时报错。
解决方案
方案1(推荐,无兼容性问题)
切换JDK8作为MyEclipse Luna的运行环境:
- 本地提前安装好JDK8(1.8.x任意稳定版本)
- 打开MyEclipse安装根目录下的
myeclipse.ini配置文件 - 在
-vmargs参数行之前,新增-vm配置,指定JDK8的可执行文件路径,示例如下:
Windows环境示例:
-vm C:\Program Files\Java\jdk1.8.0_301\bin\javaw.exe
Mac/Linux环境示例:
-vm /Library/Java/JavaVirtualMachines/jdk1.8.0_301.jdk/Contents/Home/bin/java
- 保存配置文件后重新启动MyEclipse即可正常运行。
方案2(仅适合必须使用高版本JDK的场景,可能存在其他兼容问题)
如果必须使用JDK9及以上版本运行,可以通过启动参数强制暴露相关模块:
- 打开
myeclipse.ini配置文件,在-vmargs参数行之后,新增如下两行配置:
--add-modules=jdk.xml.dom --add-exports=jdk.xml.dom/org.w3c.dom.stylesheets=ALL-UNNAMED
- 保存配置后重启MyEclipse即可。
内容的提问来源于stack exchange,提问作者Suraj Gautam
相关产品推荐
相关产品推荐

