Yerel Gradle distrib ile Intellij Idea Gradle projesini içe çalışıyor ve aşağıdaki iletiyle stacktrace alıyorum: Could not target platform: 'Java SE 8' using tool chain: 'JDK 7 (1.7)'
. Biri açıklayabilir mi lütfen nedeni ne olabilir?
Yerel Gradle distrib ile Intellij Idea Gradle projesini içe çalışıyor ve aşağıdaki iletiyle stacktrace alıyorum: Could not target platform: 'Java SE 8' using tool chain: 'JDK 7 (1.7)'
. Biri açıklayabilir mi lütfen nedeni ne olabilir?
Yanıtlar:
Benim için işe yarayan şey buydu (Intellij Idea 2018.1.2):
1) Şuraya gidin: Dosya -> Ayarlar -> Oluşturma, Yürütme, Dağıtım -> Derleme Araçları -> Gradle
2) Gradle JVM: 1.8 sürümüne geçin
3) derecelendirme görevini yeniden çalıştırın
IntelliJ 2019 için:
Intellij IDEA -> Tercihler -> Derleme, Yürütme, Dağıtım -> Derleme Araçları -> Gradle -> Gradle JVM
Doğru sürümü seçin.
IntelliJ 2019, JDK 13 ve gRPC için:
Intellij IDEA -> Tercihler -> Derleme, Yürütme, Dağıtım -> Derleme Araçları -> Gradle -> Gradle JVM
ve Doğru sürümü seçin .
build.gradle bağımlılıklarınıza aşağıdaki satırı eklemeniz gerekebilir
compileOnly group: 'javax.annotation', name: 'javax.annotation-api', version: '1.3.2'
Sonunda Gradle projemi içe aktardım. Adımlar şunlardır:
JAVA_HOME
etmek JDK 8 Ben Gradle Sarıcı ile projeyi işlemini diye deneyleri ile anladım ettiği gibi (daha önce 7 idi) JDK 8 sadece.org.gradle.java.home
değişkenli) Windows user .gradle dizininde sildim, çünkü tahmin ettiğim gibi Gradle'a herhangi bir ek değer getirmedi.echo $JAVA_HOME
kontrol etmek için çalıştır ). JAVA_HOME=/path/to/jdk8 eclipse
Bu sorunu hafifletmek için JAVA_HOME'u sistem genelinde değiştirin veya ile tutulmaya başlayın
Bazı eski sistemlerden dolayı 7 uyumlu bir kaynak derlemek zorunda kaldım ve aynı problemle karşılaştım. İki seçeneğin java 8 olarak ayarlandığı gradle yapılandırmasında öğrendim.
sourceCompatibility = 1.8
targetCompatibility = 1.8
Bunları 1.7'ye çevirmek benim için sorunu çözdü ve JAVA_HOME'un kurulu JDK-7'yi göstermesini sağladı
sourceCompatibility = 1.7
targetCompatibility = 1.7
Aşağıdakiler benim için çalıştı:
Çok ilgili bir sorun yaşadım ama daha yüksek Java sürümleri için:
$ ./gradlew clean assemble
... <other normal Gradle output>
Could not target platform: 'Java SE 11' using tool chain: 'JDK 8 (1.8)'.
InteliJ kullanarak çalışırken görevin başarılı olduğunu fark ettim. Bir dosya eklemek (build.gradle ile aynı seviyede) sorunumu .java-version
çözdü:
# .java-version
11.0.3
Ve böylece diğer cevaplardan bununla başa çıkmanın birkaç yolu olduğunu görüyorum. Ama buna inanmıyorum. Tek yöne indirgenmesi gerekiyor. IDE'yi seviyorum ama farklı cevaplardan sağlanan IDE adımlarını takip edersem, bunun temel cebir olmadığını biliyorum. Hatam şuna benziyordu:
* What went wrong:
Execution failed for task ':compileJava'.
> Could not target platform: 'Java SE 11' using tool chain: 'JDK 8 (1.8)'.
Bunu bilimsel olarak çözmenin yolu şudur:
vi build.gradle
Değiştirmek için:
java {
sourceCompatibility = JavaVersion.toVersion('11')
targetCompatibility = JavaVersion.toVersion('11')
}
olmak:
java {
sourceCompatibility = JavaVersion.toVersion('8')
targetCompatibility = JavaVersion.toVersion('8')
}
Bilimsel yöntem, tartışmaya açık olan ve ortak paydaları ele alan yöntemdir.
build.Gradle'da -> sourceCompatibility = '1.7' değiştirmelisiniz