IntelliJ IDEA tidak memulai: Tidak dapat memuat kelas JDK: com.sun.jdi.Field

13

Ketika saya mencoba untuk memulai IntelliJ saya mendapatkan popup mengatakan

Cannot load a JDK class: com.sun.jdi.Field 
Please ensure you run the IDE on JDK rather than JRE.

Ini benar-benar aneh karena saya telah menunjuk JAVA_HOMEdan PATHvariabel ke Java 11 JDK.

Cerus
sumber
Jenis hal yang sulit untuk di-debug secara jarak jauh tetapi 1) menunjukkan variabel JAVA_HOME Anda. 2) Periksa apakah tidak ditimpa dalam file konfigurasi IntelliJ jetbrains.com/help/idea/switching-boot-jdk.html 3) sebagai upaya terakhir, coba ubah melalui file konfigurasi
Lesiak
@Lesiak Mengubah JDK dalam file .jdk membantu! Terima kasih!
Cerus
Unduh IntelliJ dengan JDK. Ini seharusnya bekerja di luar kotak
Thorbjørn Ravn Andersen
@ ThorbjørnRavnAndersen tidak jika diubah per intellij-support.jetbrains.com/hc/articles/206544879 dan lokasi runtime khusus menjadi tidak valid, lihat jawaban saya untuk lebih jelasnya.
CrazyCoder
@CrazyCoder Benar. Kudos kepada tim untuk membuat distribusi "membawakan jvm sendiri" - itu membuat segalanya lebih mudah!
Thorbjørn Ravn Andersen

Jawaban:

28

Masalah ini terjadi jika Anda mengganti JetBrains Runtime default dengan beberapa versi lain, IDE menyimpan lokasi runtime ini di bawah file CONFIG\idea64.exe.jdk dan kemudian runtime ini menjadi tidak valid (dihapus atau rusak) atau tidak kompatibel dengan versi IDE yang baru.

Solusinya adalah menghapus idea64.exe.jdk/ idea.exe.jdkmengarsipkan agar IDE menggunakan JetBrains Runtime yang dibundel default (nama file bisa berbeda tergantung pada produk yang Anda gunakan, jadi panduan umum adalah menghapus *.jdkfile di direktori konfigurasi IDE ).

Berikut adalah file yang harus dihapus untuk sebagian besar pengguna di Windows:

c:\Users\<user>\AppData\Roaming\JetBrains\IntelliJIdea2020.1\idea64.exe.jdk

Masalah terjadi ketika file ini menunjuk ke Java 8 sebagai IntelliJ IDEA tidak lagi berjalan di Java 8 dan sebaliknya mengharapkan Java 11. Java 11 sudah dibundel, tetapi file ini menimpanya, karenanya masalahnya.

Periksa juga dokumen ini untuk mengetahui cara lain yang memungkinkan untuk mengganti runtime IDE dan pastikan tidak ada yang berlaku:

IDEA_JDK_64 variabel lingkungan juga dapat mengganti runtime default, Anda harus menghapusnya.

Masalah lain yang mungkin terjadi adalah runtime yang dibundel dalam jbrsubdirektori menjadi rusak. Verifikasi dengan menjalankan java -versiondi dalam IDE_HOME\jbr\bin. Menginstal ulang IDE akan membantu.

Lihat juga diskusi terkait di forum IntelliJ IDEA .

Masalah ini sedang diselidiki di YouTrack .

CrazyCoder
sumber
Mungkinkah Intellij memverifikasi integritas file JVM yang dibundel? Atau ini bukan sesuatu yang terjadi?
Thorbjørn Ravn Andersen
Ini masalah baru dan kami masih menyelidiki mengapa itu terjadi. Ya, idealnya IDE harus memverifikasi integritas JVM, tetapi mungkin bermasalah melalui peluncur khusus platform.
CrazyCoder
Apakah Anda yakin file tersebut bukan "idea.exe.jdk" (atau "idea64.exe.jdk") ...?
Jaroslav Záruba
1
@ JaroslavZáruba memperbarui jawabannya.
CrazyCoder
1

Pastikan versi IntelliJ Anda mendukung berjalan di Java 11 (tidak hanya mengompilasinya). Selain itu, jika Anda menggunakan Windows dan hanya mendefinisikan variabel JAVA_HOME, reboot.

Jorge Yanes Diez
sumber
Saya menggunakan versi IntelliJ IDEA Ultimate terbaru yang seharusnya mendukung Java 11. Sayangnya, reboot tidak memperbaiki masalah.
Cerus
1

dari 2020.1 dan seterusnya folder konfigurasi terletak di %APPDATA%/Roaming/JetBrains/<product><version>folder.

Saya harus menghapus file * .jdk saya di folder itu agar dapat mengkonfigurasi ulang sendiri.

kode sandi
sumber
Terima kasih telah berbagi, tetapi informasi baru apa yang ditambahkannya ke jawaban yang diterima?
CrazyCoder