A class JavaLaunchHelper é implementada em ambos… libinstrument.dylib. Um dos dois será usado. Qual deles é indefinido

Fiz upgrade para o Java 7 u40 mais recente no MacOS X e comecei a receber a seguinte mensagem no console ao ativar meu aplicativo usando o Eclipse. O aplicativo funciona bem, mas eu gostaria de descobrir a causa do problema e esperançosamente uma correção para ele.

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. 

Alguém sabe por que esta mensagem é impressa e como corrigi-lo?

⚠️ Para JetBrains IntelliJ IDEA : Vá para Help -> Edit Custom Properties... Crie o arquivo se ele pedir para você criá-lo. Para desativar a mensagem de erro, cole o seguinte no arquivo criado:

 idea_rt idea.no.launcher=true 

Isso entrará em vigor na próxima reboot do IntelliJ.

A partir de outubro de 2017, esta questão está agora resolvida em

  • jdk1.9
  • jdk1.8.152
  • jdk1.7.161
  1. Instale o Java 7u21 a partir daqui: http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html#jdk-7u21-oth-JPR

  2. definir essas variables:

     export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_21.jdk/Contents/Home export PATH=$JAVA_HOME/bin:$PATH 
  3. Execute seu aplicativo e diversão 🙂

Copiar Pasting @ Lichtamberg’s comments to resposta de gotoalberto

Funciona também para o 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 

Isso corrigiu meu problema no java 8.

Não tenho certeza se essa é a causa do problema, mas só peguei esse problema depois de instalar o JVM Monitor.

Desinstalar o JVM Monitor resolveu o problema para mim.

Como outras respostas detalhadas, este é um bug no JDK (até u45) que será corrigido no JDK7u60 – enquanto isso ainda não foi lançado, você pode baixar o b01 aqui:

https://jdk7.java.net/download.html

É beta, mas corrigiu esse problema para mim.

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

Pelo que eu encontrei online, este é um bug introduzido no JDK 1.7.0_45. Eu li que será corrigido na próxima versão do Java, mas ainda não saiu. Supostamente, foi corrigido em 1.7.0_60b01, mas não consigo encontrar onde baixá-lo e 1.7.0_60b02 reintroduz o bug.

Consegui contornar o problema, voltando ao JDK 1.7.0_25. Provavelmente não é a solução que você queria, mas é a única maneira que consegui fazer funcionar. Não esqueça de adicionar o JDK 1.7.0_25 no Eclipse depois de instalar o JDK.

Por favor, não responder diretamente a este e-mail, mas vá para StackOverflow: Classe JavaLaunchHelper é implementado em ambos. Um dos dois será usado. Qual deles é indefinido

Para resolver esse problema, fiz o downgrade para o JDK versão 1.7.0_21 . então eu usei esse pequeno script para alterar a versão que eu uso.

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

Depois de ter o script bash no seu arquivo zshrc / bshrc – basta chamar setJdk 1.7.0_21 e você está setJdk 1.7.0_21 para ir.

Bem, depois de algumas dificuldades, o que funcionou para mim foi remover completamente o JDK atual, conforme descrito aqui :

 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 

Então instalado 1.7.0_21, depois de baixado daqui .

Agora, um java -version solicita:

 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) 

Se você estiver usando o IntelliJ & Mac, vá para Estrutura do projeto -> SDK e verifique se há Java listado, mas ele aponta para sth como

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

Em vez de lar de usuário …

jdk-7u80-macosx-x64.dmg resolveu este problema.