IntelliJ: Kesalahan: java: error: rilis versi 5 tidak didukung


14

Saya menggunakan IntelliJ IDEA Ultimate 2019.3.1 . Setiap kali saya mencoba untuk memulai proyek Java Maven sederhana (mungkin itu bahkan Hello World sederhana) saya mendapatkan kesalahan berikut:

Error:java: error: release version 5 not supported

Berjalan java --versiondengan terminal saya mendapatkan output berikut:

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)

Berjalan javac --versiondengan terminal saya mendapatkan output berikut:

javac 11.0.5

Pergi ke Pengaturan Java Compiler (seperti yang disarankan di sini ) saya melihat ini:

Pengaturan Java Compiler

Saya mencoba mengedit " Versi bytecode versi " menjadi 1,8 tetapi saya mendapatkan kesalahan berikut:

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

Mengubahnya ke versi 1.11 sebagai gantinya saya mendapatkan kesalahan ini:

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

Menurut Anda apa masalahnya? Bagaimana saya bisa menyelesaikannya?


Apa tingkat bahasa proyek dan modul?
Bas Leijdekkers

Jawaban:


33

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

Pertama-tama, atur language level/ release versionsdalam pom.xmlseperti itu:

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

Maven menetapkan standar ke 1,5 jika tidak. Anda juga harus memasukkan maven-compiler-pluginjika belum:

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

Juga, cobalah untuk mengubah versi Java di masing-masing tempat ini:

File -> Struktur proyek -> Proyek -> Proyek SDK -> 11.

File -> Struktur proyek -> Proyek -> tingkat bahasa proyek -> 11.

File -> Struktur proyek -> Proyek -> Modul -> -> Sumber -> 11

Dalam proyek -> ctrl+ alt+ s-> Build, Eksekusi, Deployment -> Compiler -> Java Compiler -> Versi bytecode Project -> 11

Dalam proyek -> ctrl+ alt+ s-> Build, Eksekusi, Deployment -> Compiler -> Java Compiler -> Module -> 1.11.


2
Saya telah melakukan segalanya, tetapi saya masih melihat kesalahan yang sama setiap kali saya menjalankan aplikasi
Tushar Jajodia

@TusharJajodia coba termasuk maven-compiler-pluginsebagai ketergantungan
Josh Johnson

Setelah mencoba berbagai solusi online tanpa hasil, jalur khusus ini memperbaiki masalah: File -> Struktur proyek -> Proyek -> Modul -> -> Sumber -> 11
Maude

Sebenarnya, cara yang benar untuk ini untuk java 9+ adalah dengan mendefinisikan maven-compiler-pluginsebagai plugin dan bukan ketergantungan. Tidak perlu mengkonfigurasi apa pun di IntelliJ, cukup konfigurasikan pom Anda dengan cara yang benar dan itu akan berfungsi di IntelliJ di luar kotak!
Jacob van Lingen

2

Butuh waktu beberapa saat untuk mengumpulkan solusi aktual, tetapi inilah cara untuk menghilangkan kesalahan kompilasi ini.

  1. Buka preferensi Intelij
  2. Cari "compiler (atau sesuatu seperti" compi "
  3. gulir ke bawah ke Maven -> kompiler java. Di panel kanan, akan ada daftar modul dan versi kompilasi java yang terkait "versi bytecode target."
  4. Pilih versi> 1.5. Anda mungkin perlu memutakhirkan jdk Anda jika tidak ada. masukkan deskripsi gambar di sini

1

Jika Anda menggunakan spring boot sebagai induk, Anda harus mengatur properti java.version, karena ini akan secara otomatis mengatur versi yang benar.

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

Properti yang didefinisikan dalam proyek Anda sendiri menimpa apa pun yang diatur dalam pom induk. Ini menimpa semua properti yang diperlukan untuk dikompilasi ke versi yang benar.

Beberapa informasi dapat ditemukan di sini: https://www.baeldung.com/maven-java-version


Saya juga mulai belajar tentang Spring Boot sekarang, jadi informasi ini dapat sangat berguna bagi saya :) bisakah Anda menjelaskannya lebih detail? (Dalam file apa saya harus mengubah properti itu, apa yang harus saya tulis dengan tepat ...?) Terima kasih!
Robb1

1
Saya menambahkan beberapa info tambahan dalam posting saya.
V Jansen

1

jika Anda menggunakan intellj, Anda harus mengatur => compiler, ubah versinya menjadi versi java saat ini


0

Saya menambahkan kode berikutnya ke pom.xmlfile saya , itu memecahkan masalah saya.

<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

Anda harus menambahkan hanya dua baris di pom.xml Anda dan setelah itu masalah Anda akan hilang.
Tambahkan dua baris ini di pom.xml Anda -

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

0

Di dalam IntelliJ, buka file pom.xml

Tambahkan bagian ini sebelumnya (Jika file Anda sudah memiliki bagian, cukup tambahkan baris di bawah ini ke bagian yang ada):

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

0

Satu-satunya solusi yang berfungsi dalam kasus saya adalah menambahkan blok berikut ke 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>
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.