java - Eclipse 2018-09 不会编译 Java 11 源代码;认为低于1.7

标签 java eclipse maven java-11 eclipse-2018-09

我在 Windows 10 上运行 Eclipse 2018-09 (4.9.0)。我使用的是 Open JDK 11 GA。我有一个指定为使用 Java 8 源代码的 Maven 项目。

<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>

在命令行上使用 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>

在使用 Maven 3.5.3 的命令行上仍然可以正常构建。但是在 Eclipse 2018-09 中,我到处都是错误:

  • '<>' operator is not allowed for source level below 1.7
  • Constructor references are allowed only at source level 1.8 or above
  • Default methods are allowed only at source level 1.8 or above

你明白了。

我已经用过 Alt+F5在 Eclipse 中更新我的 Maven 项目(和子项目)。我已经完成了彻底的清理和重建。

因为这在命令行上使用 Maven 编译得很好,这一定是 Eclipse 问题,不是吗?当然,Eclipse 尚不支持所有新的 Java 11 功能,但是此代码没有 Java 11 特定功能。怎么了?

最佳答案

听起来 Eclipse 没有从 pom.xml 中获取版本。

我刚刚测试了您的 pom 配置并验证了它是否有效,方法是提供问题中的编译器源和目标属性或新的发布属性 as described in this answer , 使用最新的Java 11 Support for Eclipse 2018-09插入。

在 Eclipse 首选项中正确设置 JDK 11 很重要。在“Installed JRE”首选项页面上添加 JDK 11,然后将其与“Execution Environment”首选项页面上的 JavaSE-11 匹配。否则更新 Maven 项目将导致使用默认的 JDK,这很可能是您遇到的问题。

关于java - Eclipse 2018-09 不会编译 Java 11 源代码;认为低于1.7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52539867/

相关文章:

java - 使用 XPath 查询 XML 时始终为空

eclipse - Eclipse项目推送到github时如何获取具体的目录结构?

java - Spring Boot冲突bean定义异常

java - Bamboo 在分支上构建计划,但不在开发上(又名条件构建)

maven - IntelliJ 中的 Maven 依赖项有哪些下载文档?

java - HOG描述符的实现

java - JSwing 组件中 ArrayList 的使用

java - 测试异步方法调用

android - 我无法使用 subclipse 提交 .so 库文件

javascript - 添加自定义快捷方式到 eclipse