Eclipse STS(4.7.2)与Java 9的源代码兼容性问题求助
解决STS(Eclipse 4.7.2)Java 9兼容性提示问题
我来帮你搞定这个问题!你的核心问题出在sts.ini的配置错误上,导致STS并没有真正以Java 9环境运行,进而触发了代码兼容性的错误提示。咱们一步步来修正:
问题分析
你的sts.ini里有几个关键错误:
-vm参数的位置不对:它必须放在-vmargs之前,否则STS会忽略这个配置,继续使用默认JRE- 重复配置了
-vmargs和-Dosgi.requiredJavaVersion=1.8:后者强制要求Java 8环境,和你使用Java 9的需求冲突 - 参数顺序混乱,导致部分配置不生效
修正后的sts.ini配置
把你的sts.ini替换成下面的内容,注意路径要和你的JDK 9安装目录一致:
-startup plugins/org.eclipse.equinox.launcher_1.4.0.v20161219-1356.jar --launcher.library plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.551.v20171108-1834 -product org.springsource.sts.ide --launcher.defaultAction openFile --launcher.appendVmargs -vm C:\Program Files\Java\jdk-9.0.1\bin\javaw.exe -vmargs -Dosgi.requiredJavaVersion=9 --add-modules=ALL-SYSTEM -Xms40m -Dosgi.module.lock.timeout=10 -Xverify:none -Dorg.eclipse.swt.browser.IEVersion=10001 -Xmx768m
后续验证步骤
- 重启STS,然后通过
Help > About Spring Tool Suite > Installation Details > Configuration,搜索java.version,确认显示的是9.0.1,这说明IDE已经在Java 9环境下运行了 - 再次检查项目配置:
- 打开项目属性,确认
Java Compiler里的Compiler compliance level设置为9 - 检查
Java Build Path中的JRE System Library是否指向Java 9的JDK
- 打开项目属性,确认
- 清理并重建项目:执行
Project > Clean,选择你的项目后点击OK,让STS重新编译代码,泛型相关的兼容性提示应该就会消失了
内容的提问来源于stack exchange,提问作者D Haze
相关产品推荐
相关产品推荐

