簡體   English   中英

Eclipse 2018-09 不會編譯 Java 11 源代碼; 認為它低於 1.7

[英]Eclipse 2018-09 won't compile Java 11 source; thinks it is below 1.7

我在 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 文件中獲取版本。

我剛剛使用最新的Java 11 Support for Eclipse 2018-09插件測試了您的 pom 配置並驗證了它是否有效,方法是提供問題中的編譯器源和目標屬性或本答案中描述的新版本屬性。

在 Eclipse 首選項中正確設置 JDK 11 很重要。 在“已安裝的 JRE”首選項頁面上添加 JDK 11,然后將其與“執行環境”首選項頁面上的 JavaSE-11 進行匹配。 否則更新 Maven 項目將導致使用默認的 JDK,這可能是您遇到的問題。

更新: Java 11從 4.10 版(2018 年 12 月 19 日發布)開始完全集成Eclipse 中,因此不再需要安裝此插件。


出於某種原因,您需要安裝一個額外的 Eclipse 插件“ Java 11 Support for Eclipse 2018-09 (4.9) (即使在 Eclipse Photon 4.9 中)

看來該插件在 Eclipse Marketplace 中不再可用。 我有人找到了它的安裝網址,請在此處添加:

適用於 Eclipse - STS 4.0.1(基於 Eclipse 4.9)、Maven 3.6.0,帶有這個 Maven Compiler Plugin Configuration

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

此問題已在 Eclipse 2018-12 中修復。 升級到該版本將解決您的問題。

無需添加任何插件。

您只需要升級 eclipse,使其可以處理附件中提到的 jdk 11 編譯器。

如果您可以選擇設置 jdk 11 編譯器,則無需升級 eclipse。

**注意:轉到 Java 編譯器帖子,選擇項目屬性,然后單擊配置工作區設置以提及 JDK 11。

JDK 11 編譯器設置

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM