Kelas JavaLaunchHelper diimplementasikan di dua tempat

291

Hari ini saya memutakhirkan Ide Intellij saya di macOS Sierra, dan sekarang, ketika saya menjalankan aplikasi di konsol saya memiliki kesalahan ini:

objc [3648]: Kelas JavaLaunchHelper diimplementasikan di /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/bin/java (0x10d19c4c0) dan /Library/Java/JavaVirtualMachines/jdk1.8.0112 Isi / Beranda / jre / lib / libinstrument.dylib (0x10ea194e0). Salah satu dari keduanya akan digunakan. Yang mana yang tidak ditentukan.

Ess
sumber

Jawaban:

476

Anda dapat menemukan semua detailnya di sini:

  • IDEA-170117 "objc: Kelas JavaLaunchHelper diimplementasikan di kedua ..." peringatan di Jalankan konsol

Ini adalah bug lama di Java pada Mac yang dipicu oleh Java Agent yang digunakan oleh IDE saat memulai aplikasi. Pesan ini tidak berbahaya dan aman untuk diabaikan. Komentar pengembang Oracle:

Pesannya jinak, tidak ada dampak negatif dari masalah ini karena kedua salinan kelas itu identik (dikompilasi dari sumber yang persis sama). Ini murni masalah kosmetik.

The masalah adalah tetap di Jawa 9 dan di Jawa 8 pembaruan 152 .

Jika itu mengganggu Anda atau memengaruhi aplikasi Anda dengan cara apa pun (tidak seharusnya), solusi untuk IntelliJ IDEA adalah menonaktifkan idea_rtagen peluncur dengan menambahkan idea.no.launcher=trueke idea.properties( Help| Edit Custom Properties...). Solusinya akan mulai berlaku pada restart IDE berikutnya.

Saya tidak merekomendasikan menonaktifkan agen peluncur IntelliJ IDEA. Ini digunakan untuk fitur seperti shutdown anggun (tombol Keluar), dump thread, penyelesaian masalah dengan baris perintah terlalu panjang melebihi batas OS, dll. Kehilangan fitur-fitur ini hanya karena menyembunyikan pesan yang tidak berbahaya mungkin tidak layak, tapi itu terserah kamu.

CrazyCoder
sumber
6
Apa yang dilakukan oleh idea_rt? Ada alasan untuk tidak menonaktifkannya?
TTT
8
Ini memberikan keluar anggun, dump threads, menangani classpath panjang yang dapat melebihi batas OS, dll. Saya tidak akan menonaktifkannya, terutama hanya karena alasan menyembunyikan pesan yang tidak berbahaya.
CrazyCoder
16
Saya menginstal pembaruan Java 8 152 dan menyelesaikan masalah seperti pada jawabannya. Terima kasih.
David Victor
3
Kapan 152 didorong melalui oracle java se?
Yogesh
1
Diinstal IntelliJ CE 2018.2, menjalankan pembaruan Java 8 191: pesan masih ada.
Massimiliano Kraus
180

Karena "pesan ini tidak berbahaya" (lihat jawaban @ CrazyCoder ), solusi sederhana dan aman adalah Anda dapat melipat pesan berdengung ini di konsol dengan pengaturan IntelliJ IDEA:

  1. 【Preferensi】 - 【Editor】 - 【Umum】 - 【Konsol】 - 【Lipat garis konsol yang berisi】
    Tentu saja, Anda dapat menggunakan 【Cari Aksi ...】 ( cmd+shift+Adi mac) dan ketik Fold console lines that containuntuk menavigasi lebih efektif.
  2. Menambahkan Class JavaLaunchHelper is implemented in both

gambar

Di komputer saya, ternyata: (LGTM: b)

gambar

Dan Anda dapat membuka pesan untuk memeriksanya kembali:

gambar

PS:

Pada Oktober 2017, masalah ini sekarang diselesaikan di jdk1.9 / jdk1.8.152 / jdk1.7.161
untuk info lebih lanjut, lihat jawaban @ muttonUp )

oldratlee
sumber
13

Saya menggunakan Intellij Idea 2017 dan saya mendapatkan masalah yang sama. Yang memecahkan masalah bagi saya adalah sederhana

  1. tutup proyek di intelliJ
  2. File -> Baru -> proyek dari sumber daya yang ada
  3. gunakan Impor dari model eksternal (jika ada)
  4. buka proyek lagi.
lnarasimhan
sumber
5
close then opensolusi klasik =))
Khoa
Saya mencoba setiap solusi yang disediakan sebagai jawaban di sini, tetapi hanya solusi ini yang bekerja untuk saya. Saya sarankan menghapus .ideafolder sebelum mengimpor kembali.
Rishabh
Ini tidak berfungsi untuk saya di IDEA 2017.3.1 di macOS Sierra yang menjalankan pembaruan Java 8 151. Namun memperbarui ke 152 memperbaikinya setelah me-restart IDEA dan mengatur proyek saya untuk menggunakan pembaruan 152.
akubot
1

Ini terjadi pada saya ketika saya menginstal Intellij IDEA 2017, masuk ke menu Preferences -> Build, Execution, Deployment -> Debugger dan nonaktifkan opsi: "Force Classic VM untuk JDK 1.3.x dan sebelumnya". Ini berhasil bagi saya.

Danny Guo
sumber
2
Anda mungkin perlu juga menonaktifkan agen peluncur idea_rt seperti yang disebutkan CrazyCoder. menambahkan idea.no.launcher = true ke idea.properties (Bantuan | Edit Properti Kustom ...). Pastikan restart IDE setelah ini.
Danny Guo
Ya, solusi properti kustom tidak berfungsi, saran Anda tidak melakukan apa pun pada sistem saya. Sudahkah Anda mencoba jawaban Anda yaitu beralih pengaturan - Saya tidak melihat bagaimana opsi pra JDK 1.3.x dapat memiliki efek? Saya di Jawa 8.
David Victor
Bagi saya, saya mencoba properti khusus pada awalnya, itu tidak berfungsi untuk saya. kemudian saya menemukan ini menonaktifkan solusi JDK1.3.x. setelah restart IDE, semuanya berfungsi dengan baik.
Danny Guo
1
@DannyGuo karena masalah disebabkan oleh agen Java apa pun dan dalam mode debug, Java agent tetap digunakan untuk JVM modern, ini telah memperbaiki masalah Anda dalam mode Debug saja, tetapi Anda akan memiliki masalah dalam mode Jalankan ketika agen peluncur adalah diaktifkan.
CrazyCoder
0

Saya telah menemukan solusi lain: untuk mengecualikan libinstrument.dylibdari jalur proyek. Untuk melakukannya, buka Preferensi -> Bangun, Eksekusi, dan Penempatan -> Kompiler -> Tidak Termasuk -> + dan di sini tambahkan file menurut jalur dalam pesan kesalahan.

gasabr
sumber
0

Ini adalah masalah bagi saya bertahun-tahun yang lalu dan saya sebelumnya telah memperbaikinya di Eclipse dengan mengecualikan 1,7 dari proyek saya, tetapi itu menjadi masalah lagi untuk IntelliJ, yang saya instal baru-baru ini. Saya memperbaikinya dengan:

  1. Menghapus Instalasi JDK:

    cd /Library/Java/JavaVirtualMachines
    sudo rm -rf jdk1.8.0_45.jdk

    (Saya telah jdk1.8.0_45.jdkmenginstal; jelas Anda harus menghapus instalan versi java mana pun yang tercantum dalam folder itu. File yang menyinggung itu terletak di folder itu dan harus dihapus.)

  2. Mengunduh dan menginstal JDK 9 .

Perhatikan bahwa saat berikutnya Anda membuat proyek baru, atau membuka proyek yang sudah ada, Anda perlu mengatur SDK proyek untuk menunjuk ke instalasi JDK yang baru. Anda juga masih dapat melihat bug ini atau merayap kembali jika Anda memasang JDK 1.7 di folder JavaVirtualMachines Anda (yang saya yakini terjadi pada saya).

Allison
sumber
0

Kesalahan yang sama, saya memutakhirkan Junitdan menyelesaikannya

org.junit.jupiter:junit-jupiter-api:5.0.0-M6

untuk

org.junit.jupiter:junit-jupiter-api:5.0.0
Q. Lee
sumber