我刚刚在Windows 10上安装了OpenJDK版本的JDK 11通用可用性版本.我尝试在刚刚发布的Eclipse 2018-09(4.9.0)中将其作为JRE安装,并在Eclipse对话框中显示一条消息:
您选择了此版本的Eclipse JDT尚未完全支持的JRE.某些功能可能无法正常工作.
问题是什么?
更新:从Internet搜索,我发现一些代码似乎表明Eclipse有一个已知Java版本的内部列表,如果新的JDK版本的版本高于已知的Java版本,它会给出上述消息.(这就是我解释代码的方式.)真的吗?Eclipse发布了一个新的2018-09版本,就在JDK 11发布前几天,没有更新其已知Java版本列表以包含Java 11?
也许有人有更权威的答案.
我在Windows 10上运行Eclipse 2018-09(4.9.0).我正在使用Open JDK 11 GA.我有一个Maven项目被指定为使用Java 8源代码.
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
Run Code Online (Sandbox Code Playgroud)
在命令行上使用Maven 3.5.3编译很好.使用Eclipse Eclipse 2018-09(4.9.0)编译也很好.
我将编译Java版本更改为Java 11:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
Run Code Online (Sandbox Code Playgroud)
使用Maven 3.5.3在命令行上仍然可以正常构建.但是在Eclipse 2018-09中,我在整个地方都遇到了错误:
'<>' operator is not allowed for source level below 1.7Constructor references are allowed only at source level 1.8 or aboveDefault methods are allowed only at source level 1.8 or above你明白了.
我已经习惯Alt+F5在Eclipse中更新我的Maven项目(和子项目).我做了一个完整的清洁和重建.
因为这在命令行上使用Maven编译得很好,这必然是一个Eclipse问题,不是吗?当然,Eclipse不支持所有新的Java 11功能,但此代码没有Java 11特定功能.怎么了?