javac: geçersiz hedef sürüm: 1.8


87

Yakın zamanda NetBeans ile birlikte gelen JDK 1.8.0.0_06'yı indirdim. Daha sonra Java 1.7'de geliştirmekte olduğum JavaFx projemin Java 1.8'de derlenmeyeceğini öğrendim ve bu yüzden JDK'mı 1.7'ye düşürdüm. Yine de çalışmasını / derlemesini yapamıyorum. Bu hatayı alıyorum:

javac: invalid target release: 1.8
Usage: javac <options> <source files>

Gerçekten sıkıştım ve herhangi bir yardım için minnettarım.


1
aşağı Project -> Properties -> Sources window
inecekseniz

Sen bir hayat kurtarıcısın @Jigar Joshi !!!! Tekrar teşekkürler bir değirmen. Çok minnettarım. Cevabını cevap olarak koyabilirsin ki ben de kabul edebileyim. Vaov! Tekrar teşekkür ederim. Çok uzun zamandır sıkışmıştı!
Program-Me-Rev

Projeniz Java 1.8 altında derlenmiyorsa, muhtemelen oldukça kötü bir şey yapıyorsunuzdur (örneğin, diğer sorgunuzda gönderdiğiniz koddaki UI bileşenleri için ciddi bir tasarım hatası olan statik alanlar var). Muhtemelen bu sorunu çözmek, birçok kullanıcının gelecekte bir noktada yükseltme yapacağı bir sürüme geri dönmekten daha iyidir.
James_D

Haklısın @ James_D. Bu benim java'daki ilk projem. Kendime programlamayı büyük ölçüde öğrettim ve şu ana kadar statik üyelerden, arayüzlerden ve geri kalan polimorfizmden kaçınmakla ilgili her şeyi anlamıyordum. Projem tek seferde düzenlenemeyecek kadar büyük. Kalan diğer alanları bitirirken, onu düzenlemeyi ve Bahar aracılığıyla yavaş yavaş bağımlılık enjeksiyonuna geçmeyi planlıyorum. Acı verici bir ders ama iyi öğrenilmiş.
Program-Me-Rev

1
Java'nın 1.8.0, 1.8.0_05 ve 1.8.0_11 sürümleri vardır, ancak 1.8.0.0_06 diye bir şey yoktur.
David Conrad

Yanıtlar:


33

aşağı inecekseniz, projenizin kaynağını da 1,7 olarak değiştirin,

right click on your Project -> Properties -> Sources window 

ve 1.7buraya ayarla

not: ancak 1.8'de neden çalışmadığını anlamanızı öneririm.


65

IntelliJ14 için, kullandığınız JDK'ya göre bayt kodu sürümünü değiştirmeniz gerekebilir (genel ayarlarda):

görüntü açıklamasını buraya girin


Benim için işe yaramıyor, Hedef bayt kodu sürümünü 1.8 olarak değiştiriyor ancak aynı hatayı alıyorum
tribbloid

Ama soru Netbeans ile ilgiliydi?
Jolta

27
  1. JDK 8'i indirin .
  2. Env varlığınızı JAVA_HOME, yeni kurulan JDK 1.8'i gösterecek şekilde düzenleyin: Bilgisayarım -> Özellikler -> Gelişmiş Sistem Ayarları -> Ortam Değişkenleri üzerine R-tıklayın JAVA_HOMEve değerini şu şekilde ayarlayın:

    C:\Program Files\Java\jdk1.8.0_31
    
  3. Eski sürümü bulun ve PATHdeğişkende de düzenleyin .

  4. Muhtemelen sistemi yeniden başlatmanız gerekecek.

Yapılmalı.


23

Gradle (veya Maven) görevini çalıştırırken bu hata meydana gelirse, bu derleme aracı yapılandırmasını, bu rotayı izleyerek Java JDK 1.8 kurulumunuza işaret edecek şekilde değiştirmeniz gerekir:

Dosya -> Ayarlar -> Derleme, Yürütme, Dağıtım -> Derleme Araçları -> Gradle

Orada, üzerinde çalıştığınız Bağlantılı Gradle projesini kontrol edin ve Gradle JVM'yi seçin (Gradle projesini IntelliJ'e aktardığınızda bunu kaçırdınız)

görüntü açıklamasını buraya girin

Bir Gradle (veya Maven) projesini içe aktarırken, hedef JVM'yi burada doğru şekilde ayarlamak için unutmayın: görüntü açıklamasını buraya girin


14

Javac'ınız doğru java'yı göstermiyor.

Aşağıdaki komutu kullanarak javac'ınızın nereye işaret ettiğini kontrol edin -

update-alternatives --config javac

Derlemek istediğiniz javac'ı işaret etmiyorsa, "/ JAVA8_HOME / bin / javac" ya da hangi java ile derlemek istediğinizi işaret edin.


neden -1, ben de aynı sorunu yaşadım ve bunun nedeni javac'ımın java sürümünü düzeltecek şekilde ayarlanmamasıydı?
Piyush Jajoo

Yapılandırmanın, java ve javac'ın farklı dağıtımlardan seçilme şeklini bozabileceğini unutmayın!
Audrius Meskauskas

9

Çoğu zaman, bu tür sorunlar yanlış java sürümünden kaynaklanmaktadır. PATH ve JAVA_HOME değişkenlerinizin doğru sürüme işaret ettiğinden emin olun.


Evet - bu benim de
davamdı

4

Maven ayarı:

<properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>

3

Önceki çözümlerin hiçbiri benim için işe yaramadı.

.İdea / compiler.xml dosyasını düzenleyerek çözdüm Bozuk modülün farklı hedeflere sahip "ekstra" (1) ve (2) kopyaları vardı. Bölümdeki harici girişleri sildim ve hedefleri 1.8 olarak değiştirdim ve işe yaradı.


Bu benim için de düzeltti.
davidmerrick

2

18 Aralık 2017 itibariyle IntelliJ IDEA Ultimate en son sürümü için, yukarıdaki öneriler işe yaramazsa, lütfen aşağıdakileri deneyin: Projeye sağ tıklayın ve "Modül Ayarlarını Aç" seçeneğine gidin. Açın, ardından açılır menüden "Dil Seviyesi" ni değiştirin.


Ayrıca Bağımlılıklar sekmesi altındaki Modül Ayarları'nda doğru Modül SDK'sının seçildiğinden emin olun.
Rene Juuse

1

aşağı inecekseniz, projenizin kaynağını da 1,7 olarak değiştirin,

Projenize -> Özellikler -> Kaynaklar penceresine sağ tıklayın ve 1.7'yi burada "Jigar Joshi olarak ayarlayın

Ayrıca build-impl.xmlmülke gidin excludeFromCopy="${copylibs.excludes}"ve mülkü arayın ve kodumdaki bu mülkü sil 827 satırındaydı ancak diğer satırlarda gördüm

benim için MAC OS java 1.8'den WIN XP java 1.7'ye bir kod alıyordu


1

Alternatif olarak, pom.xml dosyasını kontrol ettim ve

<java.version>1.8</java.version>

-e

<java.version>1.7</java.version>

Gracias, bu benim için sorunu çözdü, çok basit.
Fabii

1

Netbeans ile aynı sorunu yaşadım, ancak mvn build cmd penceresinde sorun değil. Benim için sorun netbeans'in JDK'sini değiştirdikten sonra çözüldü (aşağıdaki gibi netbeans.conf'ta),

netbeans_jdkhome = "C: \ Program Dosyaları \ Java \ jdk1.8.0_91"


Düzenleme: Burada bahsedilmiş gibi görünüyor: netbeans bug 236364



0

Maven ile IntelliJ IDEA Topluluğunda da aynı sorunu yaşadım ve Proje sekmesinde -> Maven -> Reimport'ta projeye sağ tıklayarak projeyi yeniden içe aktarmak zorunda kaldım


-1

IDEA Community'nin daha yeni bir sürümünü (2017.x yerine 2018.3) yüklemek sorunumu aynı hatayla çözdü ancak java sürümü: 11. Reimport benim için çalışmamıştı. Ama denemeye değer.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.