Класс JavaLaunchHelper реализован в обоих… libinstrument.dylib. Один из двух будет использован. Какой из них не определен

223

Я обновил до последней версии Java 7 u40 на 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.

Кто-нибудь знает, почему это сообщение напечатано и как его исправить?

  • 0
    Похоже, что это также рассматривается в этом посте , который предлагает вернуться к u25.
  • 3
    Хотя это может быть жизнеспособным вариантом для устранения этой специфической проблемы - это может сделать вас уязвимым для утечек в системе безопасности, исправленных в версии u45 и выше.
Показать ещё 6 комментариев
Теги:
macos
jvm
jvm-hotspot

11 ответов

113

Перейти к ➤ (Help | Edit Custom Properties...) создать файл, если он попросит вас его создать, чтобы отключить сообщение об ошибке, в файл, который вы создали, вставьте следующее:

idea_rt
idea.no.launcher=true

Это вступит в силу при следующем перезапуске Intellij IDEA.

Надеюсь, тебе это поможет!

  • 8
    Работал на меня, ничего не делая. Это должно быть помечено правильно.
  • 0
    IntelliJ не имеет пункта «Редактировать пользовательские свойства» в меню «Справка».
Показать ещё 8 комментариев
100

Проблема, которая изначально считалась исправленной, была регрессирована в более поздней версии.

По состоянию на октябрь 2017 года эта проблема теперь решена в

  • 4
    Я только что установил Java-версию "1.8.0_144" и столкнулся с проблемой.
  • 2
    @Reihan_amn вы будете, до сборки 152
Показать ещё 1 комментарий
17
  • 3
    Работает также для 1.8.0_92: # в .zshrc или .bashrc экспорт JAVA_HOME = / Библиотека / Java / JavaVirtualMachines / jdk1.8.0_92.jdk / Содержание / Домашний экспорт PATH = $ JAVA_HOME / bin: $ PATH
  • 0
    @Lichtamberg спасибо, это исправило мои проблемы с Java 8 Mac OSX. Я добавил ваш комментарий в качестве ответа, так как почти все остальные ответы работают, но теперь они абсолютные.
Показать ещё 7 комментариев
11

Копирование вставки @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
  • 0
    не работает для intellij, есть ли следующий шаг после создания / редактирования этих файлов?
Показать ещё 1 комментарий
5

Не уверен, что это является причиной проблемы, но я получил эту проблему только после установки JVM Monitor.

Удаление JVM Monitor решило проблему для меня.

  • 0
    То же самое здесь, JVM Monitor для Eclipse вызывал сообщение (JBoss 7.1, JDK 1.8.0.X).
  • 0
    Это началось для меня, когда я установил плагин eclEmma в eclipse
Показать ещё 1 комментарий
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 / Библиотека / libinstrument.dylib. Один из двух будет использован. Какой из них не определен.
  • 0
    Похоже, он был заново введен между b01 и b02
Показать ещё 4 комментария
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 реализован в обоих. Один из двух будет использован. Какой из них undefined

1

Чтобы решить эту проблему, я понизился до JDK версии 1.7.0_21. то я использовал этот немного bash script, чтобы изменить используемую версию.

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 script в вашем файле 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)
-1

Если вы используете IntelliJ и Mac, просто перейдите в структуру проекта → SDK и убедитесь, что есть Java, но она указывает на sth like

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

Вместо домашнего пользователя...

-2

jdk-7u80-macosx-x64.dmg исправить эту проблему.

  • 1
    Нужна цитата.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню