La classe JavaLaunchHelper est implémentée à la fois dans… libinstrument.dylib. Un des deux sera utilisé. Lequel est indéfini

J’ai effectué une mise à niveau vers la dernière version de Java 7 u40 sous MacOS X et j’ai commencé à recevoir le message suivant sur la console lors du lancement de mon application à l’aide d’Eclipse. L’application fonctionne bien, mais j’aimerais connaître la cause du problème et, espérons-le, trouver une solution.

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. 

Est-ce que quelqu’un sait pourquoi ce message est imprimé et comment le réparer?

⚠️ Pour JetBrains IntelliJ IDEA : Allez dans Help -> Edit Custom Properties... Créez le fichier s’il vous demande de le créer. Pour désactiver le message d’erreur, collez-le dans le fichier que vous avez créé:

 idea_rt idea.no.launcher=true 

Cela prendra effet au prochain redémarrage de l’IntelliJ.

En octobre 2017, ce problème est maintenant résolu en

  • jdk1.9
  • jdk1.8.152
  • jdk1.7.161
  1. Installez Java 7u21 à partir d’ici: http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html#jdk-7u21-oth-JPR

  2. définir ces variables:

     export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_21.jdk/Contents/Home export PATH=$JAVA_HOME/bin:$PATH 
  3. Exécutez votre application et amusez-vous 🙂

Les commentaires de Copy Pasting @ Lichtamberg sur la réponse de gotoalberto

Fonctionne également pour 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 

Cela a corrigé mon problème sur Java 8.

Vous ne savez pas si cela est la cause du problème, mais je n’ai eu ce problème qu’après avoir installé JVM Monitor.

La désinstallation de JVM Monitor a résolu le problème pour moi.

Comme d’autres réponses détaillées, il s’agit d’un bug dans le JDK (jusqu’à u45) qui sera corrigé dans JDK7u60 – bien que ce ne soit pas encore sorti, vous pouvez télécharger le b01 ici:

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

C’est bêta, mais j’ai résolu ce problème pour moi.

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

D’après ce que j’ai trouvé en ligne, il s’agit d’un bug introduit dans JDK 1.7.0_45. Je l’ai lu, il sera corrigé dans la prochaine version de Java, mais il n’est pas encore sorti. Soi-disant, il a été corrigé dans 1.7.0_60b01, mais je ne trouve pas où le télécharger et 1.7.0_60b02 réintroduit le bogue.

J’ai réussi à contourner le problème en revenant au JDK 1.7.0_25. Probablement pas la solution que vous vouliez, mais c’est le seul moyen de le faire fonctionner. N’oubliez pas d’append JDK 1.7.0_25 dans Eclipse après avoir installé le JDK.

S’il vous plaît ne pas répondre directement à cet e-mail, mais aller à StackOverflow: Classe JavaLaunchHelper est implémenté dans les deux. Un des deux sera utilisé. Lequel est indéfini

Pour résoudre ce problème, je suis passé à JDK version 1.7.0_21 . alors j’ai utilisé ce petit script bash pour changer la version que j’utilise.

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

Une fois que vous avez le script bash dans votre fichier zshrc / bshrc – appelez simplement setJdk 1.7.0_21 et vous êtes setJdk 1.7.0_21 à partir.

Eh bien, après quelques difficultés, ce qui a fonctionné pour moi était de supprimer complètement le JDK actuel, comme décrit ici :

 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 

Ensuite, installé 1.7.0_21, après téléchargé ici .

Maintenant, une version java -version demande:

 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) 

Si vous utilisez IntelliJ et Mac, allez simplement à la structure du projet -> SDK et assurez-vous que Java est répertorié, mais il indique sth comme

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

Plutôt qu’un utilisateur à la maison …

jdk-7u80-macosx-x64.dmg corrige ce problème.