Ubuntu 20.04下Eclipse Oxygen 3启动报NoClassDefFoundError如何解决
问题根因
- Eclipse Oxygen 3 仅官方适配Java 8运行环境,未对Java 9及以上版本做兼容支持。
- Java 9及更高版本(含你安装的OpenJDK 11)拆分了JDK核心模块,
javax.annotation包被移出默认标准库,而Eclipse Oxygen 3的核心渲染逻辑强依赖该包下的PostConstruct、PreDestroy注解,运行时找不到对应类就会抛出NoClassDefFoundError。 - Ubuntu 20.04默认将OpenJDK 11设为系统全局默认Java环境,你启动Eclipse时默认调用的是OpenJDK 11而非已安装的Java 1.8,是触发报错的直接原因。
修复方案
方案1:仅指定Eclipse用Java 8启动(不影响全局Java配置)
打开Eclipse解压目录下的eclipse.ini配置文件,在文件最开头添加两行配置,指定Java 8的可执行文件路径:
-vm /usr/lib/jvm/java-8-openjdk-amd64/bin/java
注:如果你的Java 1.8是自定义安装的,把第二行路径替换为实际的Java 8执行文件路径即可,修改保存后重新启动Eclipse就能正常运行。
方案2:修改系统全局默认Java版本
执行以下命令切换全局默认JRE:
sudo update-alternatives --config java
在弹出的选项列表中选中Java 1.8对应的序号,回车确认即可,之后直接点击Eclipse图标就能正常启动。
内容的提问来源于stack exchange,提问作者Gaurav Kukade
相关产品推荐
相关产品推荐

