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?


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.


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


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>

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)


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

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>

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.


9

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

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


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


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.


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.



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.


3

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

android {
  compileOptions {
    ...
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
    ...
   }
}

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


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.


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.


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.


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


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>

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.


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.


0

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

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.