javac: ungültige Zielversion: 1.8


87

Ich habe kürzlich JDK 1.8.0.0_06 heruntergeladen, das im Lieferumfang von NetBeans enthalten ist. Ich musste dann herausfinden, dass mein JavaFx-Projekt, das ich in Java 1.7 entwickelt habe, nicht in Java 1.8 kompiliert werden kann, und habe mein JDK auf 1.7 heruntergestuft. Ich kann es immer noch nicht zum Laufen / Kompilieren bringen. Ich erhalte diesen Fehler:

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

Ich stecke wirklich fest und würde mich über jede Hilfe sehr freuen.


1
Wenn Sie zurücktreten wollen, ändern Sie auch die Quelle Ihres Projekts auf 1.7, klicken Sie mit der rechten Maustaste auf Ihre Project -> Properties -> Sources windowund stellen Sie hier 1.7 ein
Jigar Joshi

Du bist ein Lebensretter @Jigar Joshi !!!! Nochmals vielen Dank ***** eine Mühle. Bin so dankbar. Sie könnten Ihre Antwort als Antwort setzen, damit ich sie akzeptieren kann. Beeindruckend! Nochmals vielen Dank. War so lange festgefahren!
Program-Me-Rev

Wenn Ihr Projekt unter Java 1.8 nicht kompiliert werden kann, machen Sie wahrscheinlich etwas ziemlich Falsches (z. B. haben Sie statische Felder für die UI-Komponenten in dem Code, den Sie in Ihrer anderen Abfrage veröffentlicht haben, was ein schwerwiegender Entwurfsfehler ist). Es ist wahrscheinlich besser, dieses Problem zu beheben, als nur auf eine Version zurückzugreifen, von der viele Benutzer zu einem späteren Zeitpunkt ein Upgrade durchführen werden.
James_D

Sie haben Recht @James_D. Dies ist mein erstes Projekt in Java. Ich habe mir selbst das Programmieren beigebracht und bis jetzt nicht alles über das Vermeiden statischer Elemente, Schnittstellen und den Rest über Polymorphismus verstanden. Mein Projekt ist etwas zu groß, um auf einmal bearbeitet zu werden. Ich habe vor, es zu bearbeiten und Stück für Stück über Spring zur Abhängigkeitsinjektion überzugehen, wenn ich mit den anderen verbleibenden Bereichen fertig bin. Es ist eine schmerzhafte Lektion, aber gut gelernt.
Program-Me-Rev

1
Es gibt Java-Versionen 1.8.0, 1.8.0_05 und 1.8.0_11, aber es gibt keine 1.8.0.0_06.
David Conrad

Antworten:


33

Wenn Sie zurücktreten möchten, ändern Sie auch die Quelle Ihres Projekts auf 1.7.

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

und 1.7hier einstellen

Hinweis: Ich würde Ihnen jedoch empfehlen, herauszufinden, warum es unter 1.8 nicht funktioniert


66

Für IntelliJ14 müssen Sie möglicherweise die Bytecode-Version für das von Ihnen verwendete JDK ändern (in den globalen Einstellungen):

Geben Sie hier die Bildbeschreibung ein


Funktioniert nicht für mich, ändert die Ziel-Bytecode-Version auf 1.8, erhält aber den gleichen Fehler
Tribbloid

Aber die Frage war über Netbeans?
Jolta

27
  1. Laden Sie JDK 8 herunter .
  2. Bearbeiten Sie Ihre env var für JAVA_HOME, um auf das neu installierte JDK 1.8 zu verweisen: Klicken Sie erneut auf Arbeitsplatz -> Eigenschaften -> Erweiterte Systemeinstellungen -> Umgebungsvariablen JAVA_HOMEin der Liste und setzen Sie den Wert auf etwa Folgendes:

    C:\Program Files\Java\jdk1.8.0_31
  3. Suchen Sie die alte Version und bearbeiten Sie sie auch in der PATHVariablen.

  4. Wahrscheinlich müssen Sie das System neu starten.

Sollte gemacht werden.


23

Wenn dieser Fehler beim Ausführen einer Gradle- (oder Maven-) Aufgabe auftritt, müssen Sie diese Build-Tool-Konfiguration ändern, um auf Ihre Installation von Java JDK 1.8 zu verweisen, die dieser Route folgt:

Datei -> Einstellungen -> Erstellen, Ausführen, Bereitstellen -> Erstellen von Tools -> Gradle

Dort überprüfen Sie, ob das verknüpfte Gradle-Projekt dasjenige ist, an dem Sie arbeiten, und wählen die Gradle-JVM aus (Sie haben dies verpasst, als Sie das Gradle-Projekt in IntelliJ importiert haben).

Geben Sie hier die Bildbeschreibung ein

Denken Sie beim Importieren eines Gradle- (oder Maven-) Projekts daran, die Ziel-JVM hier korrekt festzulegen: Geben Sie hier die Bildbeschreibung ein


14

Ihr Javac zeigt nicht auf korrektes Java.

Überprüfen Sie mit dem folgenden Befehl, wohin Ihr Javac zeigt:

update-alternatives --config javac

Wenn es nicht auf den Javac verweist, mit dem Sie kompilieren möchten, zeigen Sie auf "/ JAVA8_HOME / bin / javac" oder auf den Java, mit dem Sie kompilieren möchten.


Warum -1, ich hatte das gleiche Problem, und das lag daran, dass mein Javac nicht auf die korrekte Java-Version eingestellt war?
Piyush Jajoo

Beachten Sie, dass die Konfiguration möglicherweise fehlerhaft ist, wenn Java und Java aus verschiedenen Distributionen ausgewählt werden!
Audrius Meskauskas

9

Meistens treten diese Probleme aufgrund einer falschen Java-Version auf. Stellen Sie sicher, dass Ihre Variablen PATH und JAVA_HOME auf die richtige Version verweisen.


Yup - das war auch meine Sache
Kerl Mograbi

4

Maven-Einstellung:

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

4

Keine der vorherigen Lösungen hat bei mir funktioniert.

Ich habe es durch Bearbeiten von .idea / compiler.xml gelöst. Es gab "zusätzliche" (1) und (2) Kopien des fehlerhaften Moduls mit unterschiedlichen Zielen. Ich habe die fremde Eingabe gelöscht und die Ziele in diesem Abschnitt auf 1.8 geändert, und es hat funktioniert.


Das hat es auch für mich behoben.
Davidmerrick

2

Wenn die oben genannten Vorschläge für die neueste Version von IntelliJ IDEA Ultimate vom 18. Dezember 2017 nicht funktionieren, versuchen Sie Folgendes: Klicken Sie mit der rechten Maustaste auf das Projekt und navigieren Sie zu "Moduleinstellungen öffnen". Öffnen Sie es und ändern Sie die "Sprachstufe" aus der Dropdown-Liste.


Stellen Sie außerdem sicher, dass in den Moduleinstellungen auf der Registerkarte Abhängigkeiten das richtige Modul-SDK ausgewählt ist.
Rene Juuse

2

Mach das einfach . Dann machen Sie IntelliJ-Caches ungültig ( File -> Invalidate Caches)


1

Wenn Sie zurücktreten möchten, ändern Sie auch die Quelle Ihres Projekts auf 1.7.

Klicken Sie mit der rechten Maustaste auf Ihr Projekt -> Eigenschaften -> Quellenfenster und setzen Sie hier 1.7 "Jigar Joshi

Gehen Sie auch zu build-impl.xmlund suchen Sie nach der Eigenschaft excludeFromCopy="${copylibs.excludes}"und löschen Sie diese Eigenschaft in meinem Code in Zeile 827, aber ich habe sie in anderen Zeilen gesehen

Für mich war es ein Code von MAC OS Java 1.8 zu WIN XP Java 1.7


1

Alternativ habe ich die pom.xml überprüft und geändert

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

zu

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

Gracias, das hat es für mich behoben, so einfach.
Fabii

1

Ich habe das gleiche Problem mit NetBeans, aber MVN Build ist im Cmd-Fenster in Ordnung. Für mich wurde das Problem behoben, nachdem das JDK von netbeans geändert wurde (in netbeans.conf wie unten).

netbeans_jdkhome = "C: \ Programme \ Java \ jdk1.8.0_91"


Edit: Scheint hier erwähnt zu sein: Netbeans Bug 236364


1

Ich habe das gleiche Problem in der IntelliJ IDEA Community mit Maven und musste das Projekt erneut importieren, indem ich mit der rechten Maustaste auf das Projekt auf der Registerkarte Projekt -> Maven -> Neu importieren klickte


0

Die Installation einer neueren Version von IDEA Community (2018.3 anstelle von 2017.x) hat mein Problem mit demselben Fehler behoben, jedoch mit Java-Version: 11. Reimport hatte bei mir nicht funktioniert. Aber es ist einen Versuch wert.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.