it-swarm.com.ru

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

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

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

265
ams

⚠️ для JetBrains IntelliJ IDEA: перейти к Help -> Edit Custom Properties.... Создайте файл, если он попросит вас его создать. Чтобы отключить сообщение об ошибке, вставьте следующее в файл, который вы создали:

idea_rt
idea.no.launcher=true

Это вступит в силу при перезапуске IntelliJ.

170
rust

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

116
muttonUp
  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. Запустите свое приложение и получайте удовольствие :)

18
gotoalberto

Скопируйте 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.

11
Pritesh Jain

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

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

5
paradite

Как подробно описано в других ответах, это ошибка в JDK (до u45), которая будет исправлена ​​в JDK7u60 - хотя это еще не сделано, вы можете скачать b01 из: https://jdk7.Java. нетто/download.html

Это бета, но исправил эту проблему для меня.

4
Matthias Wenz

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 реализован в обоих. Будет использован один из двух. Какой из них не определен

2
Vinod Joshi

Чтобы решить эту проблему, я понизился до JDK версия 1.7.0_21 . затем я использовал this маленький скрипт 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 [email protected]`
   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 и все готово.

1
guy.gc

Что ж, после некоторых трудностей у меня сработало полное удаление текущего 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
demogar