Class JavaLaunchHelper มีการใช้งานในสองสถานที่


291

วันนี้ฉันอัพเกรด Intellij Idea บน macOS Sierra และตอนนี้เมื่อฉันเรียกใช้แอพในคอนโซลฉันมีข้อผิดพลาดนี้:

objc [3648]: คลาส JavaLaunchHelper มีการใช้งานทั้งใน /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/bin/java (0x10d19c4c0) และ /Lava/JavaVirtualMachines/jd1.81 สารบัญ / หน้าแรก / jre / lib / libinstrument.dylib (0x10ea194e0) หนึ่งในสองจะถูกนำมาใช้ อันไหนไม่ถูกกำหนด

คำตอบ:


476

คุณสามารถหารายละเอียดทั้งหมดได้ที่นี่:

  • IDEA-170117 "objc: Class JavaLaunchHelper มีการใช้งานในทั้งสอง ... " คำเตือนใน Run consoles

เป็นข้อบกพร่องเก่าใน Javaบน Mac ที่ถูกเรียกใช้โดยตัวแทน Javaที่ใช้โดย IDE เมื่อเริ่มต้นแอป ข้อความนี้ไม่เป็นอันตรายและปลอดภัยที่จะเพิกเฉย ความคิดเห็นของนักพัฒนา Oracle:

ข้อความนั้นอ่อนโยนไม่มีผลกระทบเชิงลบจากปัญหานี้เนื่องจากสำเนาทั้งสองของคลาสนั้นเหมือนกัน (รวบรวมจากแหล่งเดียวกัน) มันเป็นปัญหาเครื่องสำอางหมดจด

ปัญหาได้รับการแก้ไขในJava 9และJava 8 ปรับปรุง 152

หากมันทำให้คุณรำคาญหรือมีผลกับแอพของคุณในทางใดทางหนึ่ง (ไม่ควร) การแก้ปัญหาสำหรับ IntelliJ IDEA คือการปิดการใช้งานidea_rtตัวแทนตัวเรียกใช้งานโดยการเพิ่มidea.no.launcher=trueลงในidea.properties( Help| Edit Custom Properties...) วิธีแก้ปัญหาจะมีผลกับการรีสตาร์ท IDE ครั้งถัดไป

ฉันไม่แนะนำให้ปิดใช้งานตัวแทนตัวเปิดใช้ IntelliJ IDEA มันใช้สำหรับคุณสมบัติต่าง ๆ เช่นการปิดเครื่องอย่างดี (ปุ่มออก) การทิ้งเธรดการแก้ไขปัญหาด้วยบรรทัดคำสั่งที่ยาวเกินไปเกินขีด จำกัด ของระบบปฏิบัติการ ฯลฯ การสูญเสียคุณสมบัติเหล่านี้เพื่อซ่อนข้อความที่ไม่เป็นอันตรายอาจคุ้มค่า แล้วแต่คุณ.


6
idea_rt ทำอะไรได้บ้าง มีเหตุผลที่จะไม่ปิดการใช้งานหรือไม่
TTT

8
มันให้ทางออกที่สง่างามการทิ้งเธรดจัดการ classpath แบบยาวที่เกินขีด จำกัด ของระบบปฏิบัติการ ฯลฯ ฉันจะไม่ปิดการใช้งานโดยเฉพาะอย่างยิ่งสำหรับเหตุผลในการซ่อนข้อความที่ไม่เป็นอันตราย
CrazyCoder

16
ฉันติดตั้ง Java 8 update 152 แล้วและจะแก้ไขปัญหาได้เหมือนในคำตอบ ขอบคุณ.
David Victor

3
152 จะถูกผลักผ่าน oracle java se เมื่อไหร่?
Yogesh

1
ติดตั้ง IntelliJ CE 2018.2 แล้วเรียกใช้การอัปเดต Java 8 191: ข้อความยังคงอยู่ที่นั่น
Massimiliano Kraus

180

เนื่องจาก“ ข้อความนี้ไม่เป็นอันตราย” (ดูคำตอบ @ CrazyCoder ) วิธีแก้ปัญหาที่ง่ายและปลอดภัยคือคุณสามารถพับข้อความที่ส่งเสียงหึ่งๆนี้ในคอนโซลโดยการตั้งค่า IntelliJ IDEA:

  1. 【การตั้งค่า】 - 【เครื่องมือแก้ไข】 - 【ทั่วไป】 - 【คอนโซล】 - lines บรรทัดคอนโซลที่พับเก็บที่มี】
    แน่นอนคุณสามารถใช้【ค้นหาการกระทำ ... 】 ( cmd+shift+Aบน mac) และประเภทFold console lines that containเพื่อนำทางได้อย่างมีประสิทธิภาพมากขึ้น
  2. เพิ่ม Class JavaLaunchHelper is implemented in both

ภาพ

บนคอมพิวเตอร์ของฉันปรากฎ: (LGTM: b)

ภาพ

และคุณสามารถแฉข้อความเพื่อตรวจสอบอีกครั้ง:

ภาพ

PS:

ตั้งแต่ตุลาคม 2017 ปัญหานี้ได้รับการแก้ไขแล้วใน jdk1.9 / jdk1.8.152 / jdk1.7.161
สำหรับข้อมูลเพิ่มเติมดูคำตอบของ @ muttonUp )


13

ฉันใช้ Intellij Idea 2017 และฉันประสบปัญหาเดียวกัน สิ่งที่แก้ไขปัญหาให้ฉันได้ก็คือ

  1. ปิดโครงการใน intelliJ
  2. ไฟล์ -> ใหม่ -> โครงการจากแหล่งข้อมูลที่มีอยู่
  3. ใช้นำเข้าจากรุ่นภายนอก (ถ้ามี)
  4. เปิดโครงการอีกครั้ง

5
close then openวิธีแก้ปัญหาแบบคลาสสิก=))
Khoa

ฉันลองใช้วิธีแก้ไขปัญหาทุกข้อเพื่อเป็นคำตอบที่นี่ แต่มีเพียงโซลูชันนี้ที่ใช้ได้สำหรับฉัน ฉันแนะนำให้ลบ.ideaโฟลเดอร์ก่อนนำเข้าอีกครั้ง
Rishabh

สิ่งนี้ไม่ได้ผลสำหรับฉันใน IDEA 2017.3.1 บน macOS Sierra ที่รัน Java 8 update 151 อย่างไรก็ตามการอัปเกรดเป็น 152 แก้ไขหลังจากรีสตาร์ท IDEA และตั้งค่าโครงการของฉันให้ใช้การอัปเดต 152
akubot

1

สิ่งนี้เกิดขึ้นกับฉันเมื่อฉันติดตั้ง Intellij IDEA 2017 ไปที่เมนูการตั้งค่า -> Build, Execution, Deployment -> Debugger และปิดการใช้งานตัวเลือก: "Force Classic VM สำหรับ JDK 1.3.x และรุ่นก่อนหน้า" สิ่งนี้ใช้ได้กับฉัน


2
คุณอาจต้องปิดการใช้งานตัวแทนตัวเปิดใช้งาน idea_rt ตามที่ CrazyCoder พูดถึง การเพิ่ม idea.no.launcher = true ใน idea.properties (ความช่วยเหลือ | แก้ไขคุณสมบัติที่กำหนดเอง ... ) อย่าลืมรีสตาร์ท IDE หลังจากนี้
Danny Guo

ใช่การแก้ไขปัญหาคุณสมบัติที่กำหนดเองใช้งานได้ข้อเสนอแนะของคุณไม่ได้ทำอะไรในระบบของฉัน คุณลองตอบเช่นสลับการตั้งค่า - ฉันไม่เห็นว่าตัวเลือก pre-JDK 1.3.x จะมีผลกระทบอย่างไรบ้าง? ฉันใช้ Java 8
David Victor

สำหรับฉันฉันลองใช้คุณสมบัติที่กำหนดเองตอนเริ่มต้นมันไม่ทำงานสำหรับฉัน จากนั้นฉันพบสิ่งนี้ปิดใช้งานโซลูชัน JDK1.3.x หลังจากรีสตาร์ท IDE ทุกอย่างทำงานได้ดี
Danny Guo

1
@DannyGuo เนื่องจากปัญหาเกิดขึ้นจากเอเจนต์ Java ใด ๆ และในโหมดดีบักเอเจนต์ Java ถูกใช้ต่อไปสำหรับ JVM ที่ทันสมัยซึ่งได้แก้ไขปัญหาให้คุณในโหมด Debug เท่านั้น แต่คุณจะมีปัญหาในโหมด Run เมื่อตัวแทนตัวเรียกใช้งานคือ เปิดการใช้งาน
CrazyCoder

0

ฉันได้พบวิธีแก้ปัญหาอื่น: เพื่อแยกlibinstrument.dylibออกจากเส้นทางของโครงการ หากต้องการทำเช่นนั้นให้ไปที่การตั้งค่า -> Build, Execution and Deployment -> คอมไพเลอร์ -> ไม่รวม -> +และที่นี่เพิ่มไฟล์โดยเส้นทางในข้อความข้อผิดพลาด


0

นี่เป็นปัญหาสำหรับฉันเมื่อหลายปีก่อนและฉันเคยแก้ไขใน Eclipse โดยไม่รวม 1.7 จากโครงการของฉัน แต่มันกลายเป็นปัญหาอีกครั้งสำหรับ IntelliJ ซึ่งฉันเพิ่งติดตั้ง ฉันแก้ไขมันโดย:

  1. ถอนการติดตั้ง JDK:

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

    (ฉันjdk1.8.0_45.jdkติดตั้งแล้วเห็นได้ชัดว่าคุณควรถอนการติดตั้งรุ่นจาวาใดก็ตามที่อยู่ในโฟลเดอร์นั้นไฟล์ที่ละเมิดนั้นอยู่ในโฟลเดอร์นั้นและควรถูกลบ)

  2. ดาวน์โหลดและติดตั้ง JDK 9

โปรดทราบว่าครั้งต่อไปที่คุณสร้างโครงการใหม่หรือเปิดโครงการที่มีอยู่คุณจะต้องตั้งค่า SDK โครงการให้ชี้ไปที่การติดตั้ง JDK ใหม่ คุณยังอาจเห็นข้อผิดพลาดนี้หรือให้มันคลานกลับถ้าคุณติดตั้ง JDK 1.7 ในโฟลเดอร์ JavaVirtualMachines (ซึ่งเป็นสิ่งที่ฉันเชื่อว่าเกิดขึ้นกับฉัน)


0

ข้อผิดพลาดเดียวกันฉันอัพเกรดJunitและแก้ไข

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

ถึง

org.junit.jupiter:junit-jupiter-api:5.0.0
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.