Клас 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 та далі.
Маттіас Венц

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. Це просто нагальне повідомлення або актуальна проблема?
Чурк

7
Повідомлення про помилку цього питання включає в себе виправлення може бути включено з виходом JDK9. У цьому ж звіті про помилку йдеться так: "Для тих, хто постійно запитує про це. Повідомлення є доброякісним, негативного впливу на цю проблему немає, оскільки обидві копії цього класу однакові (складені з того самого джерела). Це чисто косметичне питання ".
Йорданія

Відповіді:


176

⚠️ Для JetBrains IntelliJ IDEA : Перейдіть на сторінку Help -> Edit Custom Properties.... Створіть файл, якщо він попросить вас створити його. Щоб вимкнути повідомлення про помилку, вставте наступне у створений файл:

idea_rt
idea.no.launcher=true

Це почне діяти під час перезавантаження IntelliJ.

Я перебуваю на версії IDE Eclipse: Photon Release (4.8.0) Ідентифікатор збірки: 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
ОП використовував Eclipse, а не IntelliJ. Таким чином, ви даєте їм інструкції щодо зміни параметрів у неправильному редакторі (отже, вони не позначаються як правильні).
Еллісон

2
Я погоджуюся з @Allison - якби ця відповідь включала засоби для Eclipse, це було б чудово. Але відповідати за неправильну IDE?
Даніель Сутар

1
Працював для IntelliJ 2018.3.3 CE, SDKMAN 5.7.3 + 337 та версії OpenJDK "1.8.0_131" (Zulu 8.21.0.1-macosx).
Девід

117

Станом на жовтень 2017 року це питання вирішено в Росії


4
Щойно я встановив версію Java "1.8.0_144", і я зіткнувся з проблемою.
Reihan_amn

2
@Reihan_amn ви будете до тих пір, поки не
наробите

1
У мене виникли проблеми з jdk1.8.65, але jdk1.8.152 виправили цю проблему. Спасибі
Аншул

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 експортування JAVA_HOME = / Бібліотека / Java / JavaVirtualMachines / jdk1.8.0_92.jdk / Зміст / Експорт додому PATH = $ JAVA_HOME / bin: $ PATH
BvuRVKyUVlViVIc7,

@Lichtamberg дякую, що це вирішило мої проблеми на Java 8 mac osx. Я додав ваш коментар як відповідь, оскільки майже всі інші відповіді працюють, але зараз абсолютні.
Прітіш Джайн

1
@gotoalberto Як ця змінна середовище вирішить проблему, коли реалізація JavaLaunchHelper знаходиться в домашньому каталозі?
Прашант

1
@Lichtamberg Я використовую сонарний бігун, щоб почати оцінювати покриття коду свого додатка. У мене все ще виникає проблема з версією, яку ви згадали вище. хоча я спробував багато 8 версій з його патчами в моєму Mac OS. Нещастить.
Сатіш

НЕ РОБИ ЦЬОГО. Java 7u21 (окрім випуску у 2013 році і, таким чином, пропустивши чотири роки великі та малі патчі) має довільну вразливість виконання коду: gist.github.com/frohoff/24af7913611f8406eaf3
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 for Eclipse викликав повідомлення (JBoss 7.1, JDK 1.8.0.X).
psychowood

Почалося для мене, коли я встановив плагін eclEmma в затемненні
Nooblhu

Тут же проблема. Видалений монітор JVM, і це більше не з’являється
Zhiya

4

Як і інші детально відповіді, це помилка в JDK (до u45), яка буде виправлена ​​в JDK7u60 - поки цього ще не вийшло, ви можете завантажити b01 з: https://jdk7.java.net/download. html

Це бета-версія, але для мене це вирішено.


11
Я встановив u60, але все ж отримую клас JavaLaunchHelper реалізований у /Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk/Contents/Home/bin/java та /Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk/Contents/ Головна / jre / lib / libinstrument.dylib. Одне з двох буде використано. Який із них не визначений.
Багатий Садовський

схоже, він був знову введений між b01 та b02
npskirk

2
Будь-яке посилання на помилку? URL-адреса?
binarytemple_picsolve

3
Її фактично ще не фіксують. Вони підтримали виправлення з u60
Зансон

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: Клас JavaLaunchHelper реалізований в обох. Одне з двох буде використано. Який із них не визначений


1

Щоб вирішити цю проблему, я перейшов на версію JDK версії 1.7.0_21 . тоді я використав цей маленький сценарій bash для зміни версії, яку я використовую.

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:?;;")
 }

Коли у вас є файл bash у вашому файлі 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

Липень 2019 року

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 = правда


-2

Якщо ви використовуєте IntelliJ та Mac, просто перейдіть до структури Project -> SDK і переконайтеся, що в списку є Java, але це вказує на

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

Замість домашнього користувача ...


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.