簡體   English   中英

為什么eclipse不會將編譯器切換到Java 8?

[英]Why won't eclipse switch the compiler to Java 8?

我在eclipse中檢查了一個來自SVN的Java項目,並意識到它需要Java 8,因為它使用了lambdas等。我為Java 8安裝了eclipse插件並重新啟動了eclipse,並且項目設置如下:

新Java項目

我注意到接近底部,它表示默認的編譯器合規性是1.7,所以我進入org.eclipse.jdt.core.prefs並將編譯器合規性變量設置為1.8 ,根據這個答案 但是,在Project - > Preferences - > Java Compiler中,它仍然顯示為:

請日食

我在Project - > Java Build Path中設置了JRE:

jre8

然而編譯器拒絕編譯lambda表達式 - 我得到的錯誤看起來就像我繼續將其輸入到Java 7中所得到的錯誤。

這是我正在使用的eclipse版本

Version: Kepler Service Release 1
Build id: 20130919-0819

解決此問題的唯一方法是安裝新版本的Eclipse還是我在配置中遺漏了一些東西?

兩件事情:

首先,JRE與JDK不同。 如果你有JDK,你需要配置eclipse指向你設置中的那個。

其次,在上面的屏幕截圖中,您的編譯器合規性級別設置為1.7。 這會將您的所有代碼視為使用Java 1.7。 將其更改為1.8以修復錯誤。

您需要擁有Eclipse Luna才能獲得對Java 8的支持,但如果需要,可以將其添加到Kepler SR2。 在你再繼續之前,我會嘗試使用Luna和上述建議。 請參閱此參考

一旦獲得Luna,您的JAVA_HOME變量應足以讓Eclipse識別JDK 8.如果要指定其他JDK,可以通過以下方式添加新的Java System Library:

Project -> Properties -> Java Build Path -> Libraries -> Add Library -> Java System Library

並導航到JDK 8的有效位置。

您可以在此處下載平台的JDK 8

它導致eclipse kepler SR1不支持lambda表達式等新的Java™8語言增強功能。

從這里的信息: http//www.eclipse.org/downloads/java8/
我認為您應該將kepler SR2與支持插件一起使用,或者更改為Eclipse Luna。


更新鏈接2016年6月16日: https//wiki.eclipse.org/JDT/Eclipse_Java_8_Support_For_Kepler

我有同樣的問題,即使我有:

  • 剛剛下載的JDK 1.8.0

  • JAVA_HOME已設置

  • java -version在命令行上報告1.8

  • 控制面板中的Java設置為1.8

  • 下載了Eclipse Mars

Eclipse只允許我在編譯器首選項中選擇編譯器合規性級別op到1.7,即使我安裝的JRE是1.8.0。 在安裝的JRE下面的執行環境中,我也看不到1.8,只有JavaSE-1.7(我甚至沒有安裝它!)。 當我點擊它時,它顯示“jdk1.8.0”作為兼容的JRE,所以我選擇了它,但仍然沒有變化。

然后我將Eclipse Mars解壓縮到一個全新的目錄,創建了一個新項目,現在我可以選擇1.8,歡呼! 這大大減少了我在Java 1.8下編譯代碼時遇到的“重復方法命名為spliterator ...”錯誤,但仍有一個錯誤:

帶有參數()和()的名為spliterator的重復默認方法繼承自List和Set類型。

但是,這可能是因為我正在擴展AbstractList並實現Set,所以我現在通過刪除實現Set來修復它,因為它在我的情況下並沒有真正添加任何東西(除了表示我的集合只有唯一元素)

首先你應該得到JdK 8。

如果你安裝了Jdk。

您應該使用cmd提示符或系統變量設置其路徑。

有時可能會發生路徑未設置,因為eclipse無法獲取jdk的屬性。

安裝最新的ecipse luna可以解決您的問題。

我有靛藍和月神。 我可以在luna中設置1.8,在靛藍中設置1.7。 Eclipse月神

你可以查看eclipse網站。 它說eclipse luna肯定會將jdk 8的屬性關聯起來。

您必須安裝JDT / Eclipse Java 8 Support for Kepler。 https://wiki.eclipse.org/JDT/Eclipse_Java_8_Support_For_Kepler

我遇到了與eclipse kepler類似的問題。我已按照這些步驟來解決它

  • 轉到Eclipse和Oper Eclipse Market Place選項中的Help。
  • 搜索kepler的jdk 1.8
  • 安裝所需的插件。
  • 重啟日食。

供參考,請參閱此鏈接http://techno-terminal.blogspot.in/2016/05/jdk-18-compiler-compliance-is-not.html

老問題,但發布答案,這有助於某人。 已經將構建路徑配置為使用JDK 1.2.81但是,構建失敗並出現以下錯誤:

 lambda expressions are not supported in -source 1.5
[ERROR]   (use -source 8 or higher to enable lambda expressions)

在最新的Eclipse(Photon)中,將以下條目添加到pom.xml中。

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.target>1.8</maven.compiler.target>
    <maven.compiler.source>1.8</maven.compiler.source>
  </properties>

這是一個古老的話題,但我只是想指出我已經搜索到足以發現Indigo版本無法更新到SE 1.8這里的鏈接在eclipse網站上給出以更新執行環境但是如果你嘗試它將為Indigo拋出錯誤。

Image //wiki.eclipse.org/File:ExecutionEnvironmentDescriptionInstallation.png這是給出有關執行環境的信息的鏈接。

https://wiki.eclipse.org/JDT/Eclipse_Java_8_Support_For_Kepler這顯示了更新執行環境的一步一步。

我試圖更新執行環境,我得到了同樣的錯誤。

假設您已經下載了Jdk 1.8。 你必須確保你的eclipse版本支持Jdk 1.8。 單擊“幫助”選項卡,然后選擇“檢查更新”。 再試一次。

首先將JDK1.8設置為Path Open Eclipse和Oper Eclipse Market Place選項。 搜索jdk 1.8 for kepler安裝所需的插件。 重啟日食。 從首選項將編譯器級別更改為1.8。 如果仍有錯誤,則單擊該文件並將編譯器設置顯式更改為Jdk 1.8

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.6.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

暫無
暫無

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

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