IntelliJ: Fehler: Java: Fehler: Release Version 5 wird nicht unterstützt


14

Ich verwende IntelliJ IDEA Ultimate 2019.3.1 . Immer wenn ich versuche, ein einfaches Java Maven-Projekt zu starten (möglicherweise sogar eine einfache Hello World), wird folgende Fehlermeldung angezeigt:

Error:java: error: release version 5 not supported

Wenn java --versionich über das Terminal laufe, erhalte ich folgende Ausgabe:

openjdk 11.0.5 2019-10-15
OpenJDK Runtime Environment (build 11.0.5+10-post-Ubuntu-0ubuntu1.1)
OpenJDK 64-Bit Server VM (build 11.0.5+10-post-Ubuntu-0ubuntu1.1, mixed mode, sharing)

Wenn javac --versionich über das Terminal laufe, erhalte ich folgende Ausgabe:

javac 11.0.5

Wenn ich zu den Einstellungen des Java-Compilers gehe (wie hier vorgeschlagen ), sehe ich Folgendes:

Java Compiler-Einstellungen

Ich habe versucht, die " Ziel-Bytecode-Version " auf 1.8 zu bearbeiten , erhalte jedoch die folgenden Fehler:

Error:(1, 26) java: package javafx.application does not exist
Error:(2, 20) java: package javafx.stage does not exist
Error:(4, 27) java: cannot find symbol
  symbol: class Application
Error:(12, 23) java: cannot find symbol
  symbol:   class Stage
  location: class Main
Error:(7, 9) java: cannot find symbol
  symbol:   method launch(java.lang.String[])
  location: class Main
Error:(11, 5) java: method does not override or implement a method from a supertype

Ändern auf Version 1.11 Ich erhalte stattdessen diesen Fehler:

Error:java: Source option 5 is no longer supported. Use 6 or later.

Was denkst du ist das Problem? Wie kann ich das lösen?


Was ist das Sprachniveau des Projekts und der Module?
Bas Leijdekkers

Antworten:


33

Siehe  https://stackoverflow.com/a/12900859/104891 .

Stellen Sie das language level/ release versionsin zunächst pom.xmlso ein:

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

Maven setzt den Standardwert ansonsten auf 1,5. Sie müssen auch Folgendes angeben, maven-compiler-pluginfalls Sie dies noch nicht getan haben:

<dependency>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>3.8.1</version>
</dependency>

Versuchen Sie außerdem, die Java-Version an den folgenden Stellen zu ändern:

Datei -> Projektstruktur -> Projekt -> Projekt-SDK -> 11.

Datei -> Projektstruktur -> Projekt -> Projektsprachenstufe -> 11.

Datei -> Projektstruktur -> Projekt -> Module -> -> Quellen -> 11

In Projekt -> ctrl+ alt+ s-> Erstellen, Ausführen, Bereitstellen -> Compiler -> Java-Compiler -> Projektbytecode-Version -> 11

In Projekt -> ctrl+ alt+ s-> Erstellen, Ausführen, Bereitstellen -> Compiler -> Java-Compiler -> Modul -> 1.11.


2
Ich habe alles getan, aber ich sehe immer noch den gleichen Fehler, wenn ich die Anwendung
ausführe

@TusharJajodia versuchen, maven-compiler-pluginals Abhängigkeit aufzunehmen
Josh Johnson

Nachdem verschiedene Lösungen ohne Glück online ausprobiert wurden, wurde das Problem durch diese spezielle Zeile behoben: Datei -> Projektstruktur -> Projekt -> Module -> -> Quellen -> 11
Maude

2

Ich habe eine Weile gebraucht, um eine tatsächliche Lösung zusammenzufassen, aber hier erfahren Sie, wie Sie diesen Kompilierungsfehler beseitigen können.

  1. Öffnen Sie die Intelij-Einstellungen
  2. Suchen Sie nach "compiler" (oder so etwas wie "compi")
  3. Scrollen Sie nach unten zu Maven -> Java Compiler. Im rechten Bereich wird eine Liste der Module und der zugehörigen Java-Kompilierungsversion "Ziel-Bytecode-Version" angezeigt.
  4. Wählen Sie eine Version> 1.5. Möglicherweise müssen Sie Ihr JDK aktualisieren, wenn eines nicht verfügbar ist. Geben Sie hier die Bildbeschreibung ein

1

Wenn Sie Spring Boot als übergeordnetes Element verwenden, sollten Sie die Eigenschaft java.version festlegen, da dadurch automatisch die richtigen Versionen festgelegt werden.

<properties>
   <java.version>11</java.version>
</properties>

Die in Ihrem eigenen Projekt definierte Eigenschaft überschreibt alle im übergeordneten POM festgelegten Eigenschaften. Dies überschreibt alle erforderlichen Eigenschaften, um auf die richtige Version zu kompilieren.

Einige Informationen finden Sie hier: https://www.baeldung.com/maven-java-version


Ich fange jetzt auch an, etwas über Spring Boot zu lernen, daher können diese Informationen für mich sehr nützlich sein :) Können Sie sie bitte genauer erläutern? (In welche Datei soll ich diese Eigenschaften ändern, was soll ich genau schreiben ...?) Danke!
Robb1

1
Ich habe einige zusätzliche Informationen in meinen Beitrag aufgenommen.
V Jansen

1

Wenn Sie Intellj verwenden, müssen Sie = = Compiler verwenden. Ändern Sie die Version in Ihre aktuelle Java-Version


0

Ich füge den nächsten Code zu meiner pom.xmlDatei hinzu, er hat mein Problem gelöst.

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>

0

Sie müssen nur zwei Zeilen in Ihre pom.xml einfügen und danach ist Ihr Problem behoben.
Fügen Sie diese beiden Zeilen in Ihre pom.xml ein -

<!--pom.xml-->
<properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>

0

Öffnen Sie in IntelliJ die Datei pom.xml

Fügen Sie diesen Abschnitt zuvor hinzu (Wenn Ihre Datei bereits einen Abschnitt enthält, fügen Sie einfach die folgenden Zeilen zu diesem vorhandenen Abschnitt hinzu):

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

0

Die einzige funktionierende Lösung in meinem Fall war das Hinzufügen des folgenden Blocks zu pom.xml:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.0</version> <configuration> <release>12</release>
        </configuration>
        </plugin>
    </plugins>
</build>
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.