web-dev-qa-db-fra.com

La classe JavaLaunchHelper est implémentée à la fois dans ... libinstrument.dylib. Un des deux sera utilisé. Lequel n'est pas défini

J'ai mis à niveau vers la dernière version Java 7u4 sur 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 correctement, mais j'aimerais savoir 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?

268
ams

⚠️ Pour JetBrains IntelliJ IDEA: Allez à Help -> Edit Custom Properties.... Créez le fichier s'il vous est demandé de le créer. Pour désactiver le message d'erreur, collez ce qui suit dans le fichier que vous avez créé:

idea_rt
idea.no.launcher=true

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

172
rust

Depuis octobre 2017, ce problème est maintenant résolu dans

116
muttonUp
  1. Installez Java 7u21 à partir de: http://www.Oracle.com/technetwork/Java/javase/downloads/Java-archive-downloads-javase7-521261.html#jdk-7u21-oth -JPR

  2. Définissez ces variables:

    export Java_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_21.jdk/Contents/Home
    export PATH=$Java_HOME/bin:$PATH
    
  3. Lancez votre application et amusez-vous :)

19
gotoalberto

Copier Coller les commentaires de @ Lichtamberg à la réponse de gotoalberto

Fonctionne aussi 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 résolu mon problème sur Java 8.

11
Pritesh Jain

Pas sûr que ce soit la cause du problème, mais je n'ai eu ce problème qu'après l'installation de JVM Monitor.

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

5
paradite

Comme d’autres réponses détaillées, il s’agit d’un bogue dans le JDK (jusqu’à u45) qui sera corrigé dans JDK7u60 - bien que cela ne soit pas encore disponible, vous pouvez télécharger le b01 de: https://jdk7.Java. net/download.html

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

4
Matthias Wenz

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 bogue introduit dans JDK 1.7.0_45. Je l'ai lu sera corrigé dans la prochaine version de Java, mais ce 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 à JDK 1.7.0_25. Ce n'est probablement pas la solution que vous souhaitiez, mais c'est la seule façon pour moi de la faire fonctionner. N'oubliez pas d'ajouter JDK 1.7.0_25 dans Eclipse après avoir installé le JDK.

Veuillez NE PAS RÉPONDRE directement à cet e-mail mais allez à StackOverflow: La classe JavaLaunchHelper est implémentée dans les deux. L'un des deux sera utilisé. Lequel n'est pas défini

2
Vinod Joshi

Pour résoudre ce problème, j'ai rétrogradé à JDK version 1.7.0_21 . alors j'ai utilisé this 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 serez prêt à partir.

1
guy.gc

Après quelques difficultés, ce qui a fonctionné pour moi a été de supprimer complètement le JDK actuel, car 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

Puis installé 1.7.0_21, qui a été téléchargé à partir de ici .

Maintenant, 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)
0
demogar

Juillet 2019

OSX Mojave 10.14.5 (18F132) IntelliJ 2019-1 Community Edition. Cela a fonctionné en définissant le fichier idea.properties. J'ai également configuré Java_HOME en pointant vers /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/

intelliJ IDEA propriétés personnalisées

idea_rt idea.no.launcher = true

0
Joe V.