[英]Why won't eclipse switch the compiler to Java 8?
我在eclipse中檢查了一個來自SVN的Java項目,並意識到它需要Java 8,因為它使用了lambdas等。我為Java 8安裝了eclipse插件並重新啟動了eclipse,並且項目設置如下:
我注意到接近底部,它表示默認的編譯器合規性是1.7,所以我進入org.eclipse.jdt.core.prefs
並將編譯器合規性變量設置為1.8
,根據這個答案 。 但是,在Project - > Preferences - > Java Compiler中,它仍然顯示為:
我在Project - > Java Build Path中設置了JRE:
然而編譯器拒絕編譯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類似的問題。我已按照這些步驟來解決它
供參考,請參閱此鏈接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.