Eclipse启动项目报Launch错误,更换JDK 8到JDK 16出现IllegalStateException怎么解决
异常根因定位&解决方案
1. 先校验Eclipse本身的JDK兼容性
- 低于2021-03版本的Eclipse原生不支持JDK 16,首先确认Eclipse版本:打开Eclipse > 帮助 > 关于Eclipse IDE,查看内部版本号,版本低于2021-03的优先升级Eclipse到最新稳定版,否则会因为兼容性直接抛启动异常。
- 如果不打算升级Eclipse,手动修改Eclipse启动参数:找到Eclipse安装目录下的
eclipse.ini文件,在文件末尾追加两行参数:
该配置用于兼容JDK 9之后引入的模块化访问限制,避免低版本Eclipse依赖的旧组件触发访问权限报错。--add-modules=ALL-SYSTEM --illegal-access=permit
2. 校验Eclipse全局JDK配置
升级JDK后要确保Eclipse全局运行环境绑定的是新安装的JDK 16,配置路径:
- 打开窗口 > 首选项 > Java > 已安装的JRE,删除旧的JDK 1.8条目,点击添加 > 标准VM > 下一步,选择JDK 16的安装根目录,确认后勾选JDK 16作为默认运行环境。
- 再进入首选项 > Java > 编译器,将编译器合规性级别调整为16,和运行环境版本对齐,避免版本不匹配报错。
3. 校验项目本身的JDK配置
全局配置生效后还要单独校验项目的JDK绑定,避免项目沿用旧配置:
- 右键点击报错项目 > 属性 > Java构建路径 > 库,找到JRE系统库条目,如果显示的是JDK 1.8,点击编辑 > 选择工作区默认JRE(JDK 16)或者单独指定JDK 16的安装路径,保存后应用。
- 再进入属性 > Java编译器,勾选
启用项目特定设置,将编译器合规性级别调整为16,和全局配置对齐。 - 如果是Maven/Gradle项目,还要修改构建配置文件的JDK版本指定:
- Maven项目打开
pom.xml,修改maven-compiler-plugin配置的source、target、release参数全部为16:<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>16</source> <target>16</target> <release>16</release> </configuration> </plugin> - Gradle项目打开
build.gradle,修改sourceCompatibility和targetCompatibility为16。
- Maven项目打开
4. 清理缓存重启
所有配置修改完成后:
- 点击项目 > 清理,选择所有报错的项目执行清理。
- 退出Eclipse,删除工作空间目录下的
.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi文件清除界面缓存,再重新启动Eclipse即可。
内容的提问来源于stack exchange,提问作者SaiBalaji
相关产品推荐
相关产品推荐

