क्लास JavaLaunchHelper को दो जगहों पर लागू किया गया है


291

आज मैंने अपने Intellij Idea को macOS Sierra पर अपग्रेड किया, और अब, जब मैं कंसोल में ऐप चलाता हूं तो मुझे यह त्रुटि होती है:

objc [3648]: Class JavaLaunchHelper को दोनों /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/bin/java (0x10d19c4c0) और /Library/Java/Java/JavaVirtualMirtualMirtualMirtines पर लागू किया गया है। सामग्री / गृह / jre / lib / libinstrument.dylib (0x10ea194e0)। इन दोनों में से कोई एक प्रयोग किया जाएगा। कौन सा अपरिभाषित है।

जवाबों:


476

आप यहाँ सभी विवरण पा सकते हैं:

  • IDEA-170117 "objc: Class JavaLaunchHelper दोनों में लागू किया गया है ..." रन कंसोल में चेतावनी

यह मैक पर जावा में पुराना बग है जो ऐप शुरू करते समय आईडीई द्वारा उपयोग किए जा रहे जावा एजेंट द्वारा ट्रिगर किया गया था। यह संदेश हानिरहित है और उपेक्षा करने के लिए सुरक्षित है। ओरेकल डेवलपर की टिप्पणी:

संदेश सौम्य है, इस समस्या से कोई नकारात्मक प्रभाव नहीं पड़ता है क्योंकि उस वर्ग की दोनों प्रतियां समान हैं (ठीक उसी स्रोत से संकलित)। यह पूरी तरह से एक कॉस्मेटिक मुद्दा है।

समस्या का समाधान होने में जावा 9 और में जावा 8 अद्यतन 152

यदि यह आपको किसी भी तरह से आपके ऐप्स को प्रभावित करता है या प्रभावित करता है (ऐसा नहीं होना चाहिए), IntelliJ IDEA के लिए वर्कअराउंड idea_rtलॉन्चर एजेंट idea.no.launcher=trueको idea.properties( Help| Edit Custom Properties...) में जोड़कर निष्क्रिय करना है । IDE के अगले पुनरारंभ पर वर्कअराउंड प्रभावी होगा।

मैं हालांकि IntelliJ IDEA लॉन्चर एजेंट को अक्षम करने की अनुशंसा नहीं करता। इसका उपयोग ग्रेसफुल शटडाउन (एग्जिट बटन), थ्रेड डंप, वर्कअराउंड के साथ ओएस सीमा से अधिक लंबी कमांड लाइन के साथ एक समस्या, आदि के लिए किया जाता है। इन सुविधाओं को सिर्फ हानिरहित संदेश को छिपाने के लिए खोना शायद इसके लायक नहीं है, लेकिन यह है आप पर निर्भर करता है।


6
Idea_rt क्या करता है? इसे निष्क्रिय करने का कोई कारण नहीं?
TTT

8
यह सुंदर निकास प्रदान करता है, थ्रेड्स डंप, लंबे वर्गपथ को संभालता है जो ओएस सीमाएं पार कर सकता है, आदि। मैं इसे अक्षम नहीं करूंगा, विशेषकर सिर्फ एक हानिरहित संदेश को छिपाने के कारण के लिए।
क्रेज़ीकोड

16
मैंने जावा 8 अद्यतन 152 स्थापित किया और यह उत्तर में समस्या का समाधान करता है। धन्यवाद।
डेविड विक्टर

3
152 को oracle java se के माध्यम से कब धकेला जाएगा?
योगेश

1
स्थापित किया गया IntelliJ CE 2018.2, जावा 8 अपडेट 191 चल रहा है: संदेश अभी भी है।
मैसिमिलियानो क्रूस

180

चूंकि "यह संदेश हानिरहित है" ( @ CrazyCoder का उत्तर देखें ), एक सरल और सुरक्षित समाधान यह है कि आप इस बज़िंग संदेश को IntelliJ IDEA सेटिंग्स द्वारा सांत्वना में बदल सकते हैं:

  1. 】 वरीयताएँ 【-】 संपादक 【-】 सामान्य 【- ferences कंसोल】 -】 मोड़ कंसोल लाइनें जिनमें
    निश्चित रूप से 】 शामिल हैं , आप Action फाइंड एक्शन ...】 ( cmd+shift+Aमैक पर) का उपयोग कर सकते हैं और Fold console lines that containअधिक प्रभावी ढंग से नेविगेट करने के लिए टाइप कर सकते हैं ।
  2. जोड़ना Class JavaLaunchHelper is implemented in both

छवि

मेरे कंप्यूटर पर, यह पता चला: (LGTM: b)

छवि

और आप इसे दोबारा जाँचने के लिए संदेश को प्रकट कर सकते हैं:

छवि

पुनश्च:

अक्टूबर 2017 तक, यह मुद्दा अब
अधिक जानकारी के लिए jdk1.9 / jdk1.8.152 / jdk1.7.161 में हल किया गया है , देखें @ muttonUp का उत्तर )


13

मैं Intellij Idea 2017 का उपयोग कर रहा हूं और मैं उसी समस्या में पड़ गया हूं। मेरे लिए क्या समस्या हल हो गई

  1. इंटेलीज में परियोजना को बंद करें
  2. फ़ाइल -> नया -> मौजूदा संसाधनों से परियोजना
  3. बाहरी मॉडल से आयात का उपयोग करें (यदि कोई हो)
  4. फिर से प्रोजेक्ट खोलें।

5
क्लासिक close then openसमाधान =))
खोआ

मैंने उत्तर के रूप में दिए गए हर समाधान की कोशिश की, लेकिन केवल इस समाधान ने मेरे लिए काम किया। मैं .ideaपुन: आयात करने से पहले फ़ोल्डर को हटाने का सुझाव देता हूं ।
ऋषभ

यह मेरे लिए IDEA 2017.3.1 में मैकओएस सिएरा पर जावा 8 अपडेट 151 को चलाने पर काम नहीं आया। हालांकि आईडीए को फिर से शुरू करने और अपडेट 152 का उपयोग करने के लिए मेरे प्रोजेक्ट को सेट करने के बाद 152 को अपग्रेड किया गया।
akubot

1

यह मेरे साथ हुआ जब मैंने Intellij IDEA 2017 स्थापित किया, मेनू वरीयताएँ -> बिल्ड, निष्पादन, परिनियोजन -> डीबगर पर जाएँ और विकल्प को अक्षम करें: "JDK 1.3.x और पहले के लिए क्लासिक वीएम को मजबूर करें"। यह मेरे काम आता है।


2
जैसा कि CrazyCoder उल्लेख किया गया है, आपको idea_rt लॉन्चर एजेंट को अक्षम करना पड़ सकता है। idea.no.launcher = true को idea.properties में जोड़ना (मदद | कस्टम गुण संपादित करें ...)। इसके बाद आईडीई को फिर से शुरू करें।
डैनी गुओ

हां, कस्टम प्रॉपर्टी वर्कअराउंड काम करता है, आपका सुझाव मेरे सिस्टम पर कुछ नहीं करता है। क्या आपने अपना जवाब देने की कोशिश की है यानी सेटिंग को टॉगल करें - मैं नहीं देखता कि एक पूर्व JDK 1.3.x विकल्प का कोई प्रभाव कैसे हो सकता है? मैं जावा 8. पर हूँ
डेविड विक्टर

मेरे लिए, मैंने शुरुआत में कस्टम प्रॉपर्टी की कोशिश की, यह मेरे लिए काम नहीं कर रहा है। तब मुझे यह JDK1.3.x समाधान अक्षम मिला। आईडीई को पुनरारंभ करने के बाद, सब कुछ ठीक काम करता है।
डैनी गुओ

1
@DannyGuo किसी भी जावा एजेंट के कारण होता है और डिबग मोड में जावा एजेंट का उपयोग आधुनिक JVMs के लिए वैसे भी किया जाता है, इससे आपके लिए समस्या केवल डिबग मोड में तय हो गई है, लेकिन लॉन्चर मोड में आपको समस्या होगी जब लॉन्चर एजेंट सक्षम होना चाहिए।
क्रेजीक्रोडर

0

मुझे अन्य वर्कअराउंड मिल गया है: libinstrument.dylibप्रोजेक्ट पथ से बाहर करने के लिए । ऐसा करने के लिए, प्राथमिकताएँ -> बिल्ड, निष्पादन और परिनियोजन -> कंपाइलर -> बहिष्करण -> + पर जाएं और यहां त्रुटि संदेश में पथ द्वारा फ़ाइल जोड़ें।


0

यह मेरे लिए वर्षों पहले एक मुद्दा था और मैंने पहले अपनी परियोजनाओं में से 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 को डाउनलोड और इंस्टॉल करना

ध्यान दें कि अगली बार जब आप एक नया प्रोजेक्ट बनाते हैं, या किसी मौजूदा प्रोजेक्ट को खोलते हैं, तो आपको नए JDK इंस्टॉल को इंगित करने के लिए प्रोजेक्ट SDK को सेट करना होगा। यदि आप 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
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.