คลาส JavaLaunchHelper ถูกนำมาใช้ในทั้งสอง ... libinstrument.dylib หนึ่งในสองจะถูกนำมาใช้ อันไหนไม่ถูกกำหนด


274

ฉันอัพเกรดเป็นJava 7u40ล่าสุดบนMacOS Xและเริ่มได้รับข้อความต่อไปนี้บนคอนโซลเมื่อเรียกใช้แอปพลิเคชันของฉันโดยใช้ Eclipse แอปใช้งานได้ดี แต่ฉันต้องการค้นหาสาเหตุของปัญหาและหวังว่าจะสามารถแก้ไขได้

objc[10012]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/bin/java and /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/jre/lib/libinstrument.dylib. One of the two will be used. Which one is undefined.

ไม่มีใครรู้ว่าทำไมข้อความนี้จึงพิมพ์ออกมาและจะแก้ไขได้อย่างไร?


3
ในขณะที่นี่อาจเป็นตัวเลือกที่ทำงานได้เพื่อแก้ไขปัญหาเฉพาะนี้ - ซึ่งอาจทำให้คุณเสี่ยงต่อการรั่วไหลของความปลอดภัยที่แก้ไขใน u45 และถัดไป
Matthias Wenz

5
สิ่งเดียวกันนี้เกิดขึ้นกับ jdk1.8.0_05
neu242

28
หนึ่งปีที่ผ่านมาและข้อผิดพลาดยังคงจู้จี้นักพัฒนา Java ทุกคนที่เกิดขึ้นกับใช้ Mac (ตรวจสอบกับ jdk1.7.0_67 บน OS X 10.9.3) น่าอับอาย ใครสามารถเข้าสู่ระบบที่เหมาะสมโปรดเปิดข้อผิดพลาดเหล่านี้bugs.java.com/bugdatabase/view_bug.do?bug_id=8021205และbugs.openjdk.java.net/browse/JDK-8025876
Tobia

8
ข้อผิดพลาดยังคงมีอยู่สำหรับ jdk1.8.0_25 นี่เป็นเพียงข้อความจู้จี้หรือปัญหาที่เกิดขึ้นจริง?
Churk

7
รายงานข้อผิดพลาดของปัญหานี้แสดงให้เห็นการแก้ไขอาจจะรวมกับการเปิดตัว JDK9 รายงานข้อผิดพลาดเดียวกันบอกสิ่งนี้ว่า: "สำหรับผู้ที่ถามเกี่ยวกับเรื่องนี้อย่างต่อเนื่อง: ข้อความนั้นไม่เป็นพิษเป็นภัยไม่มีผลกระทบเชิงลบจากปัญหานี้เนื่องจากสำเนาทั้งสองของคลาสนั้นเหมือนกัน (รวบรวมจากแหล่งเดียวกันแน่นอน) ปัญหาเครื่องสำอาง "
Jordan

คำตอบ:


176

⚠️ สำหรับ JetBrains IntelliJ IDEA : Help -> Edit Custom Properties...ไปที่ สร้างไฟล์ถ้ามันขอให้คุณสร้างมัน หากต้องการปิดใช้งานข้อความแสดงข้อผิดพลาดให้วางไฟล์ต่อไปนี้ลงในไฟล์ที่คุณสร้าง:

idea_rt
idea.no.launcher=true

สิ่งนี้จะมีผลในการรีสตาร์ท IntelliJ

ฉันใช้ Eclipse IDE เวอร์ชั่น: โฟตอนรีลีส (4.8.0) Build ID: 20180619-1200 ที่ใช้ macOS 10.14.6 (Mojave) ฉันเพิ่มบรรทัดidea.no.launcher=trueลง <install location>/eclipse/configuration/config.iniและสิ่งนี้ได้แก้ไขปัญหาให้ฉันแล้ว


9
ทำงานให้ฉันโดยไม่ทำอะไรเลย สิ่งนี้ควรถูกทำเครื่องหมายว่าถูกต้อง
trishulpani

7
ทำงานให้ฉันใน IDEA 2017.1.3 OSX 10.12.5 JRE 1.8
Daniel Rucci

2
OP ใช้ Eclipse ไม่ใช่ IntelliJ ดังนั้นคุณจึงให้คำแนะนำในการแก้ไขการตั้งค่าในตัวแก้ไขที่ไม่ถูกต้อง (ดังนั้นจึงไม่ถูกทำเครื่องหมายว่าถูกต้อง)
Allison

2
ฉันเห็นด้วยกับ @Allison - หากคำตอบนี้รวมวิธีการสำหรับ Eclipse มันจะยอดเยี่ยม แต่ตอบ IDE ผิดหรือเปล่า?
Daniel Soutar

1
ทำงานกับ IntelliJ 2018.3.3 CE, SDKMAN 5.7.3 + 337 และรุ่น OpenJDK "1.8.0_131" (Zulu 8.21.0.1-macosx)
David Lukac

117

เมื่อวันที่ตุลาคม 2017, ปัญหานี้อยู่ในขณะนี้ได้รับการแก้ไขใน


4
ฉันเพิ่งติดตั้งรุ่น Java "1.8.0_144" และฉันประสบปัญหา
Reihan_amn

2
@Reihan_amn คุณจะสร้างจนครบ 152
muttonUp

1
ฉันมีปัญหากับ jdk1.8.65 แต่ jdk1.8.152 แก้ไขปัญหานี้ ขอบคุณ
Anshul

20
  1. ติดตั้ง Java 7u21 จาก: http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html#jdk-7u21-oth-JPR

  2. ตั้งค่าตัวแปรเหล่านี้:

    export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_21.jdk/Contents/Home
    export PATH=$JAVA_HOME/bin:$PATH
  3. เรียกใช้แอปของคุณและสนุก :)


3
ใช้งานได้กับ 1.8.0_92: # in .zshrc หรือ .bashrc export JAVA_HOME = / Library / Java / JavaVirtualMachines / jdk1.8.0_92.jdk / เนื้อหา / หน้าแรกส่งออก PATH = $ JAVA_HOME / bin: $ PATH
BvuRVKyUVlViVIc7

@Lichtamberg ขอบคุณนี้แก้ไขปัญหาของฉันใน Java 8 mac osx ฉันได้เพิ่มความคิดเห็นของคุณเป็นคำตอบเพราะเกือบทุกคำตอบทำงานได้ แต่ตอนนี้แน่นอน
Pritesh Jain

1
@gotoalberto ตัวแปรสภาพแวดล้อมนี้จะแก้ไขปัญหาอย่างไรเมื่อมีการใช้งาน JavaLaunchHelper ในไดเรกทอรี Home หรือไม่
Prashant

1
@Lichtamberg ฉันใช้เครื่อง sonar runner เพื่อเริ่มประเมินการครอบคลุมโค้ดของแอพของฉัน ฉันยังคงได้รับปัญหาเดียวกันกับรุ่นที่คุณกล่าวถึงข้างต้น แม้ว่าฉันจะลองใช้ 8 เวอร์ชันด้วยแพตช์ใน mac os ไม่มีโชค.
Sathish

อย่าทำอย่างนี้. Java 7u21 (นอกเหนือจากการเปิดตัวในปี 2013 และทำให้พลาดสี่ปีของการแก้ไขใหญ่และเล็ก) มีช่องโหว่การใช้รหัสโดยอำเภอใจ
mseebach

11

คัดลอกความคิดเห็นของ Pasting @ Lichtamberg เพื่อรับคำตอบของ gotoalberto

ใช้งานได้กับ Java 1.8:

# in ~/.zshrc and ~/.bashrc

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home 
export PATH=$JAVA_HOME/bin:$PATH 

สิ่งนี้แก้ไขปัญหาของฉันใน java 8


4
ยังคงประสบปัญหาใน Android Studio (2.2p3) หลังจากแก้ไข ~ / .zshrc และ ~ / .bashrc
Mic Fok

ใช้งานไม่ได้กับ Intellij มีขั้นตอนต่อไปหลังจากสร้าง / แก้ไขไฟล์เหล่านี้หรือไม่
xpto

5

ไม่แน่ใจว่านี่เป็นสาเหตุของปัญหาหรือไม่ แต่ฉันได้รับปัญหานี้หลังจากติดตั้งJVM Monitorแล้วเท่านั้น

การถอนการติดตั้ง JVM Monitor แก้ไขปัญหาให้ฉัน


เหมือนกันที่นี่ JVM Monitor สำหรับ Eclipse เป็นสาเหตุของข้อความ (JBoss 7.1, JDK 1.8.0.X)
psychowood

มันเริ่มต้นสำหรับฉันเมื่อฉันติดตั้งปลั๊กอิน eclEmma ใน eclipse
Nooblhu

ปัญหาเดียวกันที่นี่ ถอนการติดตั้งจอมอนิเตอร์ JVM และสิ่งนี้จะไม่ปรากฏอีกต่อไป
Zhiya

4

ตามรายละเอียดคำตอบอื่น ๆ นี่เป็นข้อผิดพลาดใน JDK (สูงสุด u45) ซึ่งจะได้รับการแก้ไขใน JDK7u60 - ในขณะที่ยังไม่ออกคุณสามารถดาวน์โหลด b01 ได้จาก: https://jdk7.java.net/download HTML

มันเป็นรุ่นเบต้า แต่แก้ไขปัญหานี้ให้ฉันได้


11
ฉันติดตั้ง u60 แล้ว แต่ยังได้รับ Class JavaLaunchHelper มีการใช้งานในทั้ง หน้าแรก / JRE / lib / libinstrument.dylib หนึ่งในสองจะถูกนำมาใช้ อันไหนไม่ถูกกำหนด
Rich Sadowsky

ดูเหมือนว่าจะมีการนำมาใช้อีกครั้งระหว่าง b01 และ b02
npskirk

2
มีการอ้างอิงข้อผิดพลาดใด ๆ ? URL
binarytemple_picsolve

3
ที่จริงแล้วมันไม่ได้รับการแก้ไข พวกเขาสำรองการแก้ไขจาก u60
Zanson

2

https://groups.google.com/forum/#!topic/google-appengine-stackoverflow/QZGJg2tlfA4

จากสิ่งที่ฉันพบทางออนไลน์นี่เป็นข้อผิดพลาดใน JDK 1.7.0_45 ฉันได้อ่านแล้วจะได้รับการแก้ไขใน Java รุ่นถัดไป แต่ยังไม่ออก สมมุติว่ามันได้รับการแก้ไขใน 1.7.0_60b01 แต่ฉันไม่สามารถหาตำแหน่งที่จะดาวน์โหลดได้และ 1.7.0_60b02 แนะนำข้อผิดพลาดอีกครั้ง

ฉันจัดการเพื่อแก้ไขปัญหาโดยย้อนกลับไปที่ JDK 1.7.0_25 อาจไม่ใช่วิธีที่คุณต้องการ แต่เป็นวิธีเดียวที่ฉันสามารถทำงานได้ อย่าลืมเพิ่ม JDK 1.7.0_25 ใน Eclipse หลังจากติดตั้ง JDK

โปรดอย่าตอบกลับอีเมลนี้โดยตรง แต่ไปที่ StackOverflow: Class JavaLaunchHelper มีการใช้งานทั้งคู่ หนึ่งในสองจะถูกนำมาใช้ อันไหนไม่ถูกกำหนด


1

เพื่อแก้ปัญหานี้ผมปรับลดJDK รุ่น 1.7.0_21 จากนั้นฉันก็ใช้สคริปต์ทุบตีเล็ก ๆ น้อย ๆนี้เพื่อเปลี่ยนรุ่นที่ฉันใช้

function setjdk() {
  if [ $# -ne 0 ]; then
   removeFromPath '/System/Library/Frameworks/JavaVM.framework/Home/bin'
   if [ -n "${JAVA_HOME+x}" ]; then
    removeFromPath $JAVA_HOME
   fi
   export JAVA_HOME=`/usr/libexec/java_home -v $@`
   export PATH=$JAVA_HOME/bin:$PATH
  fi
 }

 function removeFromPath() {
  export PATH=$(echo $PATH | sed -E -e "s;:$1;;" -e "s;$1:?;;")
 }

เมื่อคุณมีสคริปต์ทุบตีในไฟล์ zshrc / bshrc ของคุณเพียงแค่โทรsetJdk 1.7.0_21และคุณก็พร้อมที่จะไป


0

ดีหลังจากดิ้นรนบางสิ่งที่ทำงานสำหรับฉันอย่างสมบูรณ์ลบ JDK ปัจจุบันเช่นอธิบายไว้ที่นี่ :

sudo rm -rf /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk
sudo rm -rf /Library/PreferencePanes/JavaControlPanel.prefPane
sudo rm -rf /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin
sudo rm -rf /Library/LaunchAgents/com.oracle.java.Java-Updater.plist
sudo rm -rf /Library/PrivilegedHelperTools/com.oracle.java.JavaUpdateHelper
sudo rm -rf /Library/LaunchDaemons/com.oracle.java.JavaUpdateHelper.plist
sudo rm -rf /Library/Preferences/com.oracle.java.Helper-Tool.plist

ติดตั้งแล้ว 1.7.0_21 ซึ่งดาวน์โหลดได้จากที่นี่

ตอนนี้java -versionแจ้ง:

java version "1.7.0_21"
Java(TM) SE Runtime Environment (build 1.7.0_21-b12)
Java HotSpot(TM) 64-Bit Server VM (build 23.21-b01, mixed mode)

0

ก.ค. 2562

OSX Mojave 10.14.5 (18F132) IntelliJ 2019-1 Community Edition มันทำงานการตั้งค่าไฟล์ idea.properties ฉันยังกำหนดค่า JAVA_HOME ให้ชี้ไปที่ /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/

คุณสมบัติ IntelliJ IDEA แบบกำหนดเอง

idea_rt idea.no.launcher = true


-2

หากคุณใช้ IntelliJ & Mac เพียงไปที่โครงสร้างโครงการ -> SDK และตรวจสอบให้แน่ใจว่ามี Java อยู่ในรายการ แต่ชี้ไปที่ sth like

/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home

แทนที่จะเป็นบ้านของผู้ใช้ ...


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