1. 程式人生 > >Gradle 錯誤:Eclipse環境下gradle報錯Could not target platform: 'Java SE 10' using tool chain: 'JDK 8 (1.8)'.

Gradle 錯誤:Eclipse環境下gradle報錯Could not target platform: 'Java SE 10' using tool chain: 'JDK 8 (1.8)'.

問題簡述

當使用gradle 的時候,在build.gradle 檔案中,通過如下指令碼指定程式碼的版本。

project.sourceCompatibility=1.10
project.targetCompatibility=1.10

這個問題其實已經很明顯,gradle 是依賴groovy ,groovy又是依賴jdk 的,明顯,如果你gradle 使用的jdk版本如果是1.8。但是這裡,你卻要求gradle 用jdk10對你的程式碼進行編譯,這必然會有問題,因為已知jdk的交叉編譯僅僅能夠編譯版本低於當前jdk版本。例如jdk 8 能編譯 1.8 1.7 1.6…1.4版本的java原始碼 ,但是不能編譯jdk9 或者10 的程式碼。

怎麼理解?舉個例子,jdk的一項新特性是區域性變數型別推斷 。類似於如下程式碼

      var x = new ArrayList<String>();

jdk8 應該怎麼理解?根本對於jdk8來說就是無法理解的名詞。所以編譯的過程中。

解決方法

首先,必須確定你的有jdk10以上的java。本人使用jdk12,你使用jdk10也是沒問題的。 在這裡插入圖片描述

確保你有了jdk 了之後,我們就得分情況解決

命令列方法

命令列方法其實在你配置完成jdk之後已經解決了。此時你只需要作確認即可。 在這裡插入圖片描述

如果此時不是正確的版本,請注意java home是否配置正確,如果正確。請注意path環境變數中是否包含其他的java,查詢辦法是where java命令。

Eclipse解決方法

Eclipse環境下,Gradle 使用的jdk 版本是和Eclipse 啟動使用的java 版本是一樣的。所以,想要解決好在Eclipse環境下的Gradle 執行時,jdk版本的問題。只需要更換Eclipse 使用的Jdk 版本即可。 ###方法一 修改JAVA_HOME環境變數指向jdk10 的環境變數 ###方法二 修改eclipse.ini檔案 在這裡插入圖片描述

-vm C:\Program Files\Java\jdk-10.0.2\bin\javaw.exe

有時候可以這樣子配置

-vm C:\Program Files\Java\jdk-9\bin\server\jvm.dll

類似的目錄大家自行查詢一下就好了。