tangguo

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

java

我正在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特定功能。怎么了?


阅读 491

收藏
2020-11-09

共1个答案

小编典典

更新:自版本4.10(2018年12月19日发行)以来,Java 11已完全集成在Eclipse中,因此不再需要安装此插件。

由于某些原因,您需要安装其他Eclipse插件“ Eclipse 2018-09(4.9)的Java 11支持”(即使在Eclipse Photon 4.9中)

它表明该插件在Eclipse Marketplace中不再可用。我有人找到了其安装网址,请在此处添加:

适用于Eclipse-STS 4.0.1(基于Eclipse 4.9),Maven 3.6.0(具有此Maven编译器插件配置)

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.0</version>
            <configuration>
                <source>11</source>
                <target>11</target>
            </configuration>                
        </plugin>
2020-11-09