安装Eclipse Neon时出现javax.annotation相关类找不到错误求助
解决Eclipse启动时的
javax.annotation.PostConstruct/PreDestroy找不到错误 这个问题我之前帮不少开发者解决过,根源很明确——你用的JDK10是Java模块化系统推出后的版本,而你的Eclipse版本(从报错里的org.eclipse.e4.core.di_1.6.1.v20160712来看是Neon或更早的旧版本)没有适配JDK9+的模块化机制,javax.annotation这类JEE相关的注解在JDK9之后被移出了默认类路径,所以Eclipse启动时会抛出找不到类的错误。
结合你的配置情况,这里有三个可行的解决方案,按推荐优先级排序:
方案一:降级JDK到8版本(最稳妥)
旧版Eclipse对JDK8的支持最为完善,几乎不会出现兼容性问题:
- 卸载当前的JDK10,下载并安装JDK 8(注意选择对应系统版本)
- 修改系统环境变量:
- 将
Path设置为:C:\Program Files\Java\jdk1.8.0_xxx\bin;C:\Program Files\Java\jre1.8.0_xxx\bin(把xxx替换成你安装的JDK8具体版本号) - 将
CLASSPATH设置为:.;C:\Program Files\Java\jdk1.8.0_xxx\lib\dt.jar;C:\Program Files\Java\jdk1.8.0_xxx\lib\tools.jar(开头的.代表当前目录,不能省略)
- 将
- 重启你的电脑,然后启动Eclipse,问题应该就能解决了。
方案二:升级Eclipse到支持JDK9+的版本
如果不想降级JDK,那就升级Eclipse到适配模块化Java的版本:
- 下载Eclipse 2018-09及以后的版本(比如最新的2023-09版本),这些版本原生支持JDK9+
- 安装完成后,打开Eclipse,进入
Window > Preferences > Java > Installed JREs:- 点击
Add按钮,选择Standard VM,然后指向你的JDK10安装目录 - 勾选新添加的JDK10,设为默认的JRE
- 点击
- 重启Eclipse,启动时就会自动处理模块化类路径的问题,不需要额外配置。
方案三:手动添加缺失的依赖包(不推荐,繁琐易出问题)
如果前两种方案都不想用,可以尝试手动补充缺失的注解包,但可能引发其他兼容性问题:
- 下载
javax.annotation-api-1.3.2.jar这个包(包含需要的PostConstruct和PreDestroy注解) - 把这个jar包放到Eclipse安装目录下的
plugins文件夹中,或者在你的Eclipse项目里添加这个jar作为外部依赖 - 这种方法需要额外维护依赖,而且旧版Eclipse可能还是会有其他模块化相关的问题,所以仅作为备选。
内容的提问来源于stack exchange,提问作者Ayman Patel
相关产品推荐
相关产品推荐

