Fehler: Java: Ungültige Quellversion: 8 in Intellij. Was bedeutet das?

341

Ich versuche, Code zu kompilieren, indem ich Intellij Ultimate 13.1.4 verwende, aber ich erhalte die folgende Fehlermeldung und habe keine Ahnung, was dies bedeutet:

Information:Using javac 1.7.0_55 to compile java sources
Information:java: Errors occurred while compiling module 'Example'
Information:Compilation completed with 1 error and 0 warnings in 3 sec
Information:1 error
Information:0 warnings
Error:java: invalid source release: 8

Ich vermute, dass es etwas mit Java 8 oder Java 7 zu tun hat, aber ich habe keine Ahnung, was genau. Ich habe versucht, diese Nachricht bei Google zu suchen, aber sie sprechen entweder über javacoder target release, daher scheint sie nicht genau zuzutreffen.

David sagt Reinstate Monica
quelle
2
Welche Java-Version ist installiert? Auf welches JRE / JDK haben Sie in den IDE-Einstellungen auf Intellij hingewiesen?
Nanofarad
2
Wahrscheinlich Projekteinstellungen. Überprüfen Sie das JDK, auf das Sie zeigen, und die Sprachstufe, nach der Sie gefragt haben.
Duffymo
1
@duffymo du hattest recht, es zeigte auf 8. Ich wusste nicht, dass das eine Einstellung war.
David sagt Reinstate Monica

Antworten:

765

Ich hatte das gleiche Problem beim "Downgrade" eines Projekts von Java 8 auf Java 6. Der Grund war, dass es nicht an allen Stellen in IntelliJ geändert wurde.

In IntelliJ 13.1.4 musste ich die Java- und SDK-Version an folgenden Stellen ändern, um diesen Fehler nicht zu erhalten:

  • Datei -> Projektstruktur -> Projekteinstellungen
  • Datei -> Projektstruktur -> Moduleinstellungen -> Registerkarte: Quellen: Sprachniveau
  • Datei -> Projektstruktur -> Moduleinstellungen -> Registerkarte: Abhängigkeiten: Modul-SDK
  • Datei -> Einstellungen -> Compiler -> Java-Compiler -> Zielbytecode-Version

Screenshot von Datei> Projektstruktur> Projekt

Screenshot von Datei> Projektstruktur> Module> Quellen

Screenshot von Datei> Projektstruktur> Module> Abhängigkeiten

Screenshot von Datei> Einstellungen / Einstellungen> Compiler> Java Compiler

Die letzte Kugel war die, die in meinem Fall nicht aktualisiert wurde. Sobald ich dies geändert habe, ist der Fehler verschwunden.

Andreas Lundgren
quelle
31
derjenige, der mich tötete, war dieser : File -> Settings -> Compiler -> Java Compiler -> Target bytecode version. Vielen Dank.
Bitoiu
18
Ich bin auch auf dieses Problem gestoßen, aber keines der oben genannten hat funktioniert. Ich musste es tun IntelliJ IDEA -> Preferences... -> Build, Execution, Deployment -> Build Tools -> Gradle -> Gradle JVM, falls jemand auf dieses Problem stößt, während er Gradle verwendet.
Emil
2
Quelle: Änderung des Sprachniveaus auf 7 - Diamanten, ARM, Multi-Catch usw. für IDEA 15
Mia
4
Dies sollte die akzeptierte Antwort sein. Als kleines Heads-up wurde in IntelliJ IDEA 15 Punkt 4 verschoben Preferences -> Build, Execution, Deployment -> Compiler -> Java Compiler.
iusting
In einigen Run / Debug-Konfigurationen gibt es auch eine JRE-Auswahl. Zum Beispiel haben Tomcat-Run / Debug-Konfigurationen einen "JRE" -Selektor, der diesen Fehler verursachen kann.
Jordanpg
16

Überprüfen Sie Ihre pom.xmlerste (falls vorhanden)
Überprüfen Sie die JDKAbhängigkeit Ihres Moduls . Stellen Sie sicher, dass dies der Fall ist. Gehen Sie dazu zu Projektstruktur -> SDKs. Fügen Sie den Pfad hinzu, in dem Sie 1.8 gespeichert haben ( in meinem Fall). Übernehmen Sie die Änderungen . Gehen Sie nun zu Projektstruktur -> Module. Ändern Sie das Modul-SDK, um die Änderungen zu übernehmen1.8

jdk1.8.0_45.jdk


1.8

Voila! Du bist fertig

Yash Bajaj
quelle
6

Wenn für Gradle-Benutzer mit diesen Problemen nichts oben hilft, hat dies mein Problem gelöst. Wenden Sie diese Deklarationen in Ihren build.gradle-Dateien an:

targetCompatibility = 1.6 //or 1.7;1.8 and so on
sourceCompatibility = 1.6 //or 1.7;1.8 and so on

Problem gelöst!

Java_Waldi
quelle
5

Wechseln Sie pom.xml 1.6zu1.8

<plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
    </configuration>
</plugin>
Aziz Mamoyan
quelle
5

Es kann einfach durch Einschalten überwunden werden Project Structure. Sie müssen nur den richtigen Pfad für die verwandte Version von JDK auswählen. Wählen Sie newauf der Registerkarte Abhängigkeiten und wählen Sie den Pfad. Es ist fertig!

Geben Sie hier die Bildbeschreibung ein

snr
quelle
4

Wenn Sie Gradle als Build-Tool verwenden und beim Ausführen einer Gradle-Aufgabe, z. B. TomcatRun, diese Fehlermeldung angezeigt wird, werfen Sie einen Blick auf meine andere Antwort auf dieselbe Frage

javac: ungültige Zielversion: 1.8

juliangonzalez
quelle
Vielen Dank! Dies löste mein Problem, nachdem die obigen Antworten dies nicht taten.
Chazzlabs
2

Die Antwort von Andreas Lundgren hat funktioniert und ich konnte meine App kompilieren und ausführen.

Als ich jedoch versuchte, die zugehörigen JUnit-Tests des Projekts auszuführen, wurde der gleiche Fehler angezeigt. Laufen

gradle -version

An der Windows-Eingabeaufforderung wurde angezeigt, dass gradle immer noch das falsche JDK aufnimmt. Um dies zu beheben, musste ich die JAVA_HOMEUmgebungsvariable so einstellen , dass sie auf das richtige JDK zeigt, und IntelliJ neu starten.

Jilbot
quelle
1

Ich habe alle oben genannten Projektversionen, Modulversionen, Projektbytecodeversionen und Einstellungen für die Zielbytecodeversion überprüft IntelliJ Idea, aber alle waren die gleichen, die ich gekratzt habe.

Ich stehe diesen Fehler Error:java: invalid source release: 1.8in , IntelliJ Idea 2017.2.6weil ich die Abhängigkeit Version aktualisiert Mavenpom - Datei, die (Abhängigkeit) wurden für die JDK 1.8 - Anwendung erstellen soll und ich bauen meine Anwendung auf und mit Maven Compiler Quell- und Ziel JDK 1.7.

Daher habe ich die Abhängigkeitsversion in Mavenpom erneut auf eine frühere Version heruntergestuft , und der Fehler ist nach dem Projekt-Neuerstellungsmodul 'xyz_project' verschwunden.

ArifMustafa
quelle
0

Wenden Sie für Grails-Benutzer diese Deklarationen in Ihrer BuildConfig.groovy-Datei an:

grails.project.target.level = 1.6 //or 1.7;1.8 and so on
grails.project.source.level = 1.6 //or 1.7;1.8 and so on
B5A7
quelle
0

Sie müssen auf das Projekt klicken. Moduleinstellungen öffnen und den Pfad Ihres JDK ändern. Wenn Sie in der Datei POM jdk 1.8 verwenden, konfigurieren Sie jdk 1.8 mit dem richtigen Pfad.

Katherine Nicol
quelle
0

Ich habe alle hier genannten Schritte ausprobiert: https://stackoverflow.com/a/26009627/2058104 , aber der 4. Punkt hat sich jetzt geändert. Sie müssen zu Einstellungen -> Erstellen, Ausführen, Bereitstellen -> Compiler -> Java-Compiler gehen

Dort müssen Sie, wie in der folgenden Abbildung gezeigt, die "Zielbytecode-Version" ändern. Obwohl ich es auf 8 geändert habe (da ich ein Downgrade auf Java 8 durchführen musste), gab es immer wieder den gleichen Fehler. Daher versuchen , den vorhandenen Eintrag (in dieser Tabelle) zu entfernen und wieder hinzuzufügen. Das hat bei mir funktioniert.

Geben Sie hier die Bildbeschreibung ein

Bereinigen Sie andererseits das Projekt und versuchen Sie es erneut.

Cresclux
quelle