我更新了我的系统以主要运行Java 9,我的spring项目也支持Java 9.但是我的Spring Tool Suite(Eclipse 4.7.2)有一个问题,那就是程序说我的代码不兼容使用我的源级别兼容性设置,必须是JRE 1.5及更高版本(例如参数化类型)。
在我的项目属性中,我的编译器合规性级别和源兼容性设置为“9”。 在我的Window->首选项中,我已将已检查的已安装JRE设置为我的Java jdk-9.0.1文件夹的位置。
这是我的sts.ini(eclipse.ini)文件:
STS.ini
-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
-vmargs
-Dosgi.requiredJavaVersion=1.8
--add-modules=ALL-SYSTEM
-Xms40m
-Dosgi.module.lock.timeout=10
-Xverify:none
-Dorg.eclipse.swt.browser.IEVersion=10001
-Xmx768m
--launcher.appendVmargs
-vm
C:\Program Files\Java\jdk-9.0.1\bin\javaw.exe
-vmargs
-Dosgi.requiredJavaVersion=1.8
--add-modules=ALL-SYSTEM
非常感谢任何解决此问题的帮助。
答案 0 :(得分:2)
您在STS.ini中指定的JVM与工作区中的项目及其编译器级别无任何关联。您可以在JDK8之上轻松运行STS,并且在您的工作区中仍然有为Java9编译的项目。
为了针对特定级别编译项目,您必须在首选项中配置相关的JDK。听起来像你说你已经这样做了。还有一个名为“执行环境”的子部分,您可以在其中指定计算机上哪个JDK应该用于哪个Java语言级别。确保在那里选择了正确的JDK。
答案 1 :(得分:1)
STS.ini
看起来很糟糕:应该只有一个-vmargs
部分; -vm
和--launcher.appendVmargs
必须高于-vmargs
:
删除最后三行(重复的行)并移动--launcher.appendVmargs
,-vm
以及-vmargs
上方的以下行:
-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=1.8
--add-modules=ALL-SYSTEM
-Xms40m
-Dosgi.module.lock.timeout=10
-Xverify:none
-Dorg.eclipse.swt.browser.IEVersion=10001
-Xmx768m
答案 2 :(得分:0)
对于那些在未来遇到同样问题的人:我解决了这个问题,但之前发布的都没有纠正这个问题(虽然它们很有帮助)。我按照here的步骤添加了' -clean'行到我的sts.ini文件并重新启动eclipse。