Eclipse 2021-09安装Spring Tools 3.9.14启动报内部错误如何解决?
错误根因
你遇到的报错是Spring Tools 3(ST3)版本与当前Eclipse、Java版本不兼容导致的:
- ST3 3.9.14是官方停止维护的最终版本,最高仅兼容到Eclipse 2020-12,与你使用的Eclipse 2021-09内置的JDT(Java开发工具)包不匹配,ST3依赖的旧版AspectJ织入代码无法找到新JDT包中的对应类,因此抛出
AjcClosure相关类不存在错误 - Java 16默认开启了JDK内部API强封装,也会阻断ST3依赖的AspectJ织入逻辑正常执行
解决方案
方案1(推荐):替换为Spring Tools 4
ST3已停止维护,Spring官方目前主推的Spring Tools 4完全兼容Eclipse 2021-09、Java 16及以上版本,同时支持所有原有Spring项目的开发功能:
- 卸载当前已安装的ST3 3.9.14插件
- 在Eclipse Marketplace搜索「Spring Tools 4」安装即可,安装完成后重启Eclipse不会再触发上述报错
方案2(必须使用ST3时选择):降级运行环境
如果因项目依赖必须使用ST3 3.9.14,需要将运行环境降级到兼容范围:
- 卸载Eclipse 2021-09,安装Eclipse 2020-12及更早版本
- 将运行Eclipse的Java版本降级到Java 11,即可正常启动运行ST3
方案3(临时规避,不推荐):修改启动配置与插件设置
如果暂时不想降级环境,可以尝试以下操作规避报错:
- 打开Eclipse安装目录下的
eclipse.ini文件,在-vmargs参数下新增以下配置,放开Java 16的模块封装限制:
--add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED
- 启动Eclipse时,报错弹出后忽略,进入偏好设置(Window -> Preferences),找到
Spring -> Code Assist,取消勾选Add Spring static imports to content assist favourites,重启Eclipse即可消除第二个报错 - 如果仍然触发Java Tooling初始化报错,可在插件管理中禁用ST3的AspectJ编织相关可选插件,仅保留核心Spring编辑功能
内容的提问来源于stack exchange,提问作者LEARNER OLY ASKING
相关产品推荐
相关产品推荐

