IntelliJ: Błąd: java: błąd: wersja 5 nie jest obsługiwana

14

Używam IntelliJ IDEA Ultimate 2019.3.1 . Ilekroć próbuję uruchomić dowolny prosty projekt Java Maven (może to być nawet zwykły Hello World), pojawia się następujący błąd:

Error:java: error: release version 5 not supported

Uruchomiony java --versionprzez terminal otrzymuję następujące dane wyjściowe:

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)

Uruchomiony javac --versionprzez terminal otrzymuję następujące dane wyjściowe:

javac 11.0.5

Przechodząc do ustawień kompilatora Java (zgodnie z sugestią tutaj ) widzę to:

Ustawienia kompilatora Java

Próbowałem edytować „ Docelową wersję kodu bajtowego ” na 1.8, ale otrzymuję następujące błędy:

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

Zmieniając go na wersję 1.11 , zamiast tego pojawia się ten błąd:

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

Jak myślisz, w czym jest problem? Jak mogę to rozwiązać?

Robb1
źródło
Jaki jest poziom językowy projektu i modułów?
Bas Leijdekkers

Odpowiedzi:

33

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

Przede wszystkim ustaw language level/ release versionsin w następujący sposób pom.xml:

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

W przeciwnym razie Maven ustawi wartość domyślną na 1,5. Będziesz także musiał podać, maven-compiler-pluginjeśli jeszcze tego nie zrobiłeś:

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

Spróbuj także zmienić wersję Java w każdym z tych miejsc:

Plik -> Struktura projektu -> Projekt -> Zestaw SDK projektu -> 11.

Plik -> Struktura projektu -> Projekt -> Poziom języka projektu -> 11.

Plik -> Struktura projektu -> Projekt -> Moduły -> -> Źródła -> 11

W projekcie -> ctrl+ alt+ s-> Kompilacja, wykonanie, wdrożenie -> Kompilator -> Kompilator Java -> Wersja kodu bajtu projektu -> 11

W projekcie -> ctrl+ alt+ s-> Kompilacja, wykonanie, wdrożenie -> Kompilator -> Kompilator Java -> Moduł -> 1.11.

Konstantin Annikov
źródło
2
Zrobiłem wszystko, ale wciąż widzę ten sam błąd przy każdym uruchomieniu aplikacji
Tushar Jajodia
@TusharJajodia spróbuj uwzględnić maven-compiler-pluginjako zależność
Josh Johnson
Po wypróbowaniu różnych rozwiązań online bez powodzenia, ten konkretny wiersz naprawił problem: Plik -> Struktura projektu -> Projekt -> Moduły -> -> Źródła -> 11
Maude
2

Zajęło mi trochę czasu, aby zebrać rzeczywiste rozwiązanie, ale oto jak pozbyć się tego błędu kompilacji.

  1. Otwórz preferencje Intelij
  2. Wyszukaj „kompilator (lub coś w stylu„ compi ”)
  3. przewiń w dół do Maven -> kompilator Java. W prawym panelu pojawi się lista modułów i powiązanych z nimi wersji kompilacji Java „docelowa wersja kodu bajtowego”.
  4. Wybierz wersję> 1.5. Może być konieczne uaktualnienie pakietu jdk, jeśli nie jest dostępny. wprowadź opis zdjęcia tutaj
borisveis
źródło
1

Jeśli używasz Spring Boot jako elementu nadrzędnego, powinieneś ustawić właściwość java.version, ponieważ spowoduje to automatyczne ustawienie poprawnych wersji.

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

Właściwość zdefiniowana we własnym projekcie zastępuje wszystko, co jest ustawione w pom nadrzędnym. To zastępuje wszystkie potrzebne właściwości do skompilowania do poprawnej wersji.

Niektóre informacje można znaleźć tutaj: https://www.baeldung.com/maven-java-version

V Jansen
źródło
Zaczynam też uczyć się o Spring Boot, więc te informacje mogą być dla mnie naprawdę przydatne :) czy możesz wyjaśnić to bardziej szczegółowo? (W jakim pliku powinienem zmienić te właściwości, co dokładnie napisać ...?) Dzięki!
Robb1
1
Dodałem dodatkowe informacje w moim poście.
V Jansen
1

jeśli używasz intelj, musisz przejść do ustawienia => kompilator zmień wersję na ur java bieżącą wersję

Sikhumbuzo Sithole
źródło
0

Dodaję następny kod do mojego pom.xmlpliku, to rozwiązało mój problem.

<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>
Jéssica Machado
źródło
0

Musisz dodać tylko dwa wiersze do pliku pom.xml, a następnie twój problem zniknie.
Dodaj tę dwie linie do pom.xml -

<!--pom.xml-->
<properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>
Mehedi Abdullah
źródło
0

W IntelliJ otwórz plik pom.xml

Dodaj tę sekcję wcześniej (jeśli plik ma już sekcję, po prostu dodaj poniższe linie do istniejącej sekcji):

<properties> 
      <maven.compiler.source>1.8</maven.compiler.source> 
      <maven.compiler.target>1.8</maven.compiler.target> 
   </properties>`
Ali Shah
źródło
0

Jedynym działającym rozwiązaniem w moim przypadku było dodanie następującego bloku do 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>
Muhammed Gül
źródło