Kesalahan: java: javacTask: rilis sumber 8 membutuhkan rilis target 1.8

889

Menggunakan IntelliJ IDE tidak dapat mengkompilasi proyek apa pun. Tangkapan layar pengaturan di bawah ini:

JDK yang digunakan:

http://gyazo.com/b6e32119af7b04090d890cad04db6373

Tingkat SDK dan Bahasa Proyek:

http://gyazo.com/55a5fc9f7f2bb721a04780ce9d74eeab

Tingkat Bahasa:

http://gyazo.com/143bffad63fd89cafc231298729df2fc

Adakah yang punya ide?

Hobi
sumber
1
Itu tidak terlihat seperti kesalahan dari "pure Intellij"; Anda tidak menggunakan semut buildscript atau sesuatu?
fge

Jawaban:

1913
  1. File> Pengaturan> Build, Eksekusi, Deployment> Compiler> Java Compiler
  2. Ubah versi bytecode Target menjadi 1,8 dari modul tempat Anda bekerja.

Jika Anda menggunakan Maven

Tambahkan plugin kompiler ke pom.xmlbawah projectsimpul tingkat atas :

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
    </plugins>
</build>

(Diangkat dari komentar.)

Catatan: Jika Anda tidak keberatan mengimpor kembali proyek Anda, maka satu-satunya hal yang benar-benar perlu Anda lakukan adalah mengubah pom dan mengimpor kembali proyek, maka IntelliJ akan mengambil pengaturan yang benar dan Anda tidak perlu mengubahnya secara manual.

Weslor
sumber
Bekerja di IntelliJ 14 Ultimate.
DtechNet
Pada versi IDEA yang lebih lama, coba: Pengaturan -> Compiler -> Java Compiler -> versi bytecode Per-module
Jonik
88
Jika Anda menggunakan Mac, ada di bawah Intellij IDEA> Preferences ...> Build, Execution, Deployment> Java Compiler
JP Armstrong
4
Untuk Intellij lebih baru dari 2016,2, ada satu lagi tempat untuk cek: Project Structure -> Project Settings -> Modules -> Denpendencies -> Module SDK.
Bruce Sun
1
Ketika Anda memiliki hierarki POM dengan lebih dari dua level dan plugin kompiler Anda ditentukan di induk POM, IntelliJ mungkin tidak mengenalinya di level terdalam. Saya katakan mungkin tidak, karena untuk beberapa modul lain, meskipun mereka memperpanjang POM induk yang sama.
Asrama
202

Anda harus pergi ke Pengaturan dan mengatur di bawah Java compiler berikut ini: masukkan deskripsi gambar di sini

juga periksa Pengaturan Proyek

Gregory Mazur
sumber
116

Ini terlihat seperti jenis kesalahan yang Maven hasilkan ketika Anda tidak memiliki plugin kompilator yang dikonfigurasi dengan benar. Berikut adalah contoh dari konfigurasi compiler Java 8.

<project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<!-- ... -->

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.5.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

<!-- ... -->

</project>
Steve Chaloner
sumber
10
Untuk pemula Maven lainnya seperti saya sendiri, ini harus di bawah project, builddan kemudian plugins.
Darren Hale
4
Juga jika <source>1.8</source>dan <target>1.8</target>dikonfigurasi, kesalahan di atas dapat terjadi.
BuZZ-dEE
1
Ini berhasil untuk saya, terima kasih! Tag versi tidak menyelesaikan (saya mengubahnya untuk mencocokkan versi Maven saya) jadi saya berkomentar. Saya percaya Maven harus secara otomatis mengambil versi terbaru yang benar dalam kasus itu, berdasarkan utas ini: stackoverflow.com/questions/17239394/… .
Boris
84

Cara tercepat yang saya temukan:

  • tekan: CTRL+ SHIFT+ A(Untuk Mac + SHIFT+ A)
  • Tipe: java compiler
  • tekan: ENTER

Di jendela Pengaturan, tetapkan Target bytecode ke 1.8

(atau 9 untuk java9)

snovelli
sumber
3
Ini benar-benar bekerja untuk saya (terima kasih!) Tapi saya tidak mengerti mengapa ini berbeda dari apa yang ada di pom.xml, pengaturan modul, dll ...
Adam Lehenbauer
1
tekan ⌘, untuk mendapatkan preferensi.
X. Wang
31

Ada dua cara untuk mengatasi masalah ini:

  1. Setel pengaturan (File -> Settings -> Build, Execution, Deployment -> Java Compiler): masukkan deskripsi gambar di sini
  2. Tambahkan bagian build ke pom.xml: masukkan deskripsi gambar di sini
Tuan Nighton
sumber
18

Banyak jawaban tentang Maven benar tetapi Anda tidak perlu mengkonfigurasi plugin secara langsung.

Seperti yang dijelaskan pada halaman wiki Plugin Apache Maven Compiler, Anda hanya dapat mengatur 2 properti yang digunakan oleh plugin.

<project>
  [...]
  <properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>
  [...]
</project>
Marvin Richter
sumber
1
@ Marvin Richter Saya mencoba solusi Anda tetapi tidak bekerja dengan IntelliJ - Dugaan saya adalah bahwa itu benar dalam pembuatan pakar murni (command-line), tetapi IntelliJ mengabaikan sifat-sifat ini. Saya harus mengkonfigurasi plugin sebagaimana disebutkan dalam solusi lain.
Benoit
1
Tidak, saya tidak melakukannya, karena solusi lain berhasil. Dan sekarang saya memigrasikan proyek saya untuk meningkat.
Benoit
4
Bekerja seperti jimat setelah Anda melakukan Klik kanan pada pom.xml -> Maven -> Reimport. Ini harus menjadi jawaban yang diterima untuk pengguna Maven.
ptkvsk
Anda sebenarnya membutuhkan plugin org.apache.maven.plugins:maven-compiler-plugindi file pom atau gradle Anda, yang ingin dikatakan dalam dokumentasi adalah bahwa memiliki properti yang diset di properti pom akan cukup, pada dasarnya karena mereka menetapkan nilai default plugin, misalnya <source> $ { maven.compiler.source} </source>
EliuX
Ini harus menjadi jawaban yang diterima. Bekerja untuk saya di IntelliJ 2018.2 di mac os 10.13.5
user674669
13

Saya memperbaikinya dengan pergi ke Struktur Proyek -> Modul , cari modul yang dimaksud, klik pada tab Ketergantungan , ubah Module SDKke Project SDK.

Sam Barnum
sumber
9

Saya memperbaikinya hanya dengan mengubah versi kompilasi target menjadi 1.8. Di:

File >> Pengaturan >> Bangun, Eksekusi, Deployment >> Compiler >> Java Compiler

Vishal
sumber
1
Terima kasih, Vishal. Kita harus menentukan versi bytecode proyek, atau setidaknya versi bytecode per-modul dengan Intellij Idea. Hanya pengaturannya di pom.xml untuk maven-compiler-plugin tidak menyelesaikan masalah bagi saya.
WebComer
6

Anda harus pergi ke /.idea/compiler.xmldan mengubah targetke jdklevel yang diperlukan .

masukkan deskripsi gambar di sini

Muhammad Usman
sumber
5

Dalam kasus saya, saya memperbaiki masalah ini dengan membuka file .iml proyek (terletak di folder root proyek dan memiliki nama yang sama dengan nama proyek) dan mengubah baris <orderEntry type="jdk" jdkName="1.7" jdkType="JavaSDK" />ke<orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />

Saya telah mengkonfigurasi semuanya seperti pada jawaban orang lain di sini, tetapi karena suatu alasan Gagasan memperbarui file .iml secara tidak benar.

Awan
sumber
2
Sepertinya terkadang Intellij tidak memperbarui file konfigurasi bahkan ketika Anda mengkonfigurasi semua menu. Batalkan cache dan restart (setelah mengedit file konfigurasi), lakukan trik untuk saya. Aneh.
jah
1
Terima kasih banyak. Akhirnya setelah mencoba dan gagal setiap solusi lain yang ditentukan di atas, ini berhasil.
Nitin Bansal
4

Saya memperbaikinya dengan memodifikasi file POM saya. Perhatikan komentar terakhir di bawah jawaban pilihan tertinggi.

<plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.3.2</version>
        <configuration>
            <source>1.8</source>
            <target>1.8</target>
            <encoding>UTF-8</encoding>
        </configuration>
</plugin>

Sumber harus sesuai dengan target.

pengguna4884640
sumber
4

Saya baru saja mengimpor kembali tombol maven, lalu kesalahannya hilang.

masukkan deskripsi gambar di sini

Pham Hung
sumber
Terima kasih. Petunjuk itu berhasil
Veilchen4ever
3

Jika Anda bekerja dengan Android-studio 1.3, Ikuti langkah-langkah di bawah ini -

Pergi ke File - Struktur Proyek

Di bawah modul - aplikasi - tab Properti , pilih Kompatibilitas Sumber - 1.8 dan

Kompatibilitas Target - 1.8 .

Dan Anda baik untuk pergi.

B.shruti
sumber
3

Dalam file tingkat aplikasi Gradle >> compileOptions Anda tambahkan dua baris ini

android {
  compileOptions {
    ...
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
    ...
   }
}
Badr
sumber
Terima kasih sobat. Jawaban Anda berhasil
Solution Spirit
1

Di bawah file compiler.xml Anda akan menemukan:

<bytecodeTargetLevel>
  <module name="your_project_name_main" target="1.8" />
  <module name="your_project_name_test" target="1.8" />
</bytecodeTargetLevel>

dan Anda dapat mengubah nilai target dari yang lama ke yang baru untuk saya, saya perlu mengubahnya dari 1,5 menjadi 1,8

Bachiri Taoufiq Abderrahman
sumber
1

Saya baru saja menghabiskan waktu berjuang dengan masalah yang sama. Satu-satunya hal yang berhasil bagi saya adalah tidak menggunakan mvn yang dibangun (3.3.9) tetapi mengarahkannya ke versi yang diunduh eksternal (3.5.0). Akhirnya proyek dibuka dan semuanya baik-baik saja.

guntur
sumber
1

Masalah ini terjadi jika modul Anda dikonfigurasikan dengan prosesor Anotasi dan modul lainnya tidak. Atur konfigurasi yang sama untuk semua modul karena akan bergantung pada siklus.

Gani
sumber
0

Bagi saya, masalahnya adalah tentang Maven tidak dapat menemukan konfigurasi yang tepat, karena item-item ini ditentukan dalam pom induk.

Mengubah File -> Pengaturan -> Build, Eksekusi, Deployment -> Maven -> File Pengaturan Pengguna untuk menunjuk ke pengaturan kustom saya dengan repositori yang tepat memperbaiki masalah yang sebelumnya bersembunyi.

Mengetahui masalah melalui Bantuan -> Tampilkan login di explorer -> mengklik file log, ketika sebelumnya hanya mendapat kesalahan dalam judul dan "java.lang.NullPointerException" di konsol.

eis
sumber
0

Solusi dari masalah ini sangat sederhana . Anda harus membuka file .idea / compiler.xml di Proyek İdea Anda dan

Anda harus menulis versi target yang sesuai

Axmedbek
sumber
0

Dengan Intellij , menggunakan Maven , Anda harus memeriksa apakah Intellij telah mengimpor proyek Anda secara otomatis. Anda dapat memeriksa dengan mengklik tab Maven di sebelah kanan Editor Anda.

masukkan deskripsi gambar di sini

Jika Proyek Anda tidak ada di sini, maka tambahkan pom.xmlfile dengan mengklik +.

Jelas, proyek juga harus memiliki yang relevan <build/>:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
            <source>1.8</source>
            <target>1.8</target>
        </configuration>
    </plugin>
Nicolas Zozol
sumber
0

Jika tidak ada jawaban lain yang berfungsi, periksa Modul SDK Anda .

Saya memiliki kesalahan ini muncul untuk saya setelah saya memperbarui proyek SDK ke 1.8, kompiler Javac ke 1.8, dll. Pengaturan yang menjadi masalah bagi saya adalah "Modul SDK".

(di Linux) Buka File > Project Structure...kemudian di jendela yang terbuka, pilih di Modulesbawah Project Settings. Pilih modul yang dimaksud dari daftar dan kemudian Dependenciestab dan pastikan yang Module SDKdiatur dengan tepat.

dzimney
sumber
0

Saya telah memeriksa semua hal di atas tetapi kesalahan masih terjadi.

Tetapi masukkan kembali semua Proyek maven (tombol muat ulang di dalam panel Maven Projects) berfungsi dalam kasus saya.

jepret
sumber
0

Jangan lupa untuk mengatur dependensi untuk modul Anda: masukkan deskripsi gambar di sini

Hieu Vo
sumber