java - Eclipse STS 与 Java 9 的源兼容性问题

标签 java eclipse spring-tool-suite java-9 eclipse-oxygen

我更新了我的系统以主要运行 Java 9,我的 spring 项目也支持 Java 9。但是我的 Spring Tool Suite (Eclipse 4.7.2) 有一个问题,程序说我的代码不兼容与我的源代码级别兼容性设置,并且必须是 JRE 1.5 及更高版本(例如参数化类型)。

在我的项目属性中,我的编译器合规级别和源兼容性设置为“9”。 在我的 Window->Preferences 中,我已将已检查安装的 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

如果能帮助解决这个问题,我们将不胜感激。

最佳答案

您在 STS.ini 中指定的 JVM 与您工作区中的项目及其编译器级别没有任何关系。您可以轻松地在 JDK8 上运行 STS,并且您的工作区中仍然有为 Java9 编译的项目。

为了针对某个级别编译项目,您必须在首选项中配置相关的 JDK。听起来你说你已经这样做了。还有一个名为“执行环境”的子部分,您可以在其中指定机器上的哪个 JDK 应该用于哪个 Java 语言级别。确保您在此处选择了正确的 JDK。

关于java - Eclipse STS 与 Java 9 的源兼容性问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48128059/

相关文章:

java - 使用java获取其他程序的 Activity 窗口

java - Java中list接口(interface)需要listIterator()和iterator()有什么用?

eclipse - 有没有办法从 eclipse 复制代码,包括 ine 数字

java - 由于 NoSuchAlgorithmException,无法读取 tc 服务器属性 [PropertyDecoder]

java - 如何动态创建HashMap

java - 如何随机化列表中的条目,以便用户每次都能看到不同的 DailyPrayer?

java - JNA 加载失败,UnsatisfiedLinkError, "Access Denied"

java - 在 Apache Tomcat 上部署 WAR 文件 - 不工作

java - 在Eclipse(STS)中设置两个maven git项目的master分支

java - Eclipse 组织导入快捷方式 (Ctrl+Shift+O) 不起作用