La classe JavaLaunchHelper est implémentée à deux endroits

Aujourd’hui, j’ai mis à jour mon Intellij Idea sur macOS Sierra, et maintenant, lorsque je lance des applications dans la console, j’ai cette erreur:

objc [3648]: la classe JavaLaunchHelper est implémentée à la fois dans /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/bin/java (0x10d19c4c0) et /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/ Contents / Home / jre / lib / libinstrument.dylib (0x10ea194e0). Un des deux sera utilisé. Lequel est indéfini.

Vous pouvez trouver tous les détails ici:

  • IDEA-170117 “objc: la classe JavaLaunchHelper est implémentée dans les deux …”

C’est l’ ancien bogue de Java sur Mac qui a été déclenché par l’agent Java utilisé par l’EDI au démarrage de l’application. Ce message est sans danger et peut être ignoré. Commentaire du développeur Oracle:

Le message est bénin, ce problème n’a pas d’impact négatif puisque les deux copies de cette classe sont identiques (compilées à partir de la même source). C’est un problème purement cosmétique.

Le problème est résolu dans Java 9 et dans Java 8 Update 152 .

Si cela vous agace ou affecte vos applications de quelque manière que ce soit (cela ne devrait pas être le cas), la solution pour IntelliJ IDEA consiste à désactiver l’agent lanceur idea_rt en ajoutant idea.no.launcher=true dans idea.properties ( Help | Edit Custom Properties... ). La solution de contournement prendra effet au prochain redémarrage de l’EDI.

Je déconseille toutefois de désactiver l’agent de lancement IntelliJ IDEA. Il est utilisé pour des fonctionnalités telles que l’arrêt progressif (bouton Quitter), les vidages de threads, les solutions de contournement, un problème avec une ligne de commande trop longue dépassant les limites du système d’exploitation, etc. dépend de vous.

Puisque «ce message est inoffensif» (voir la réponse de @ CrazyCoder ), une solution simple et sûre est que vous pouvez plier ce message en console par les parameters IntelliJ IDEA:

  1. 【Préférences】 – 【Éditeur】 – 【Général】 – 【Console】 – 【Plier les lignes de la console contenant】
    Bien sûr, vous pouvez utiliser 【Rechercher une action …】 ( cmd+shift+A sur mac) et taper Fold console lines that contain afin de naviguer plus efficacement.
  2. add La Class JavaLaunchHelper is implemented in both

image

Sur mon ordinateur, il s’avère: (LGTM: b)

image

Et vous pouvez déployer le message pour le vérifier à nouveau:

image

PS:

À partir d’octobre 2017, ce problème est maintenant résolu dans jdk1.9 / jdk1.8.152 / jdk1.7.161
pour plus d’informations, voir la réponse de @ muttonUp )

J’utilise Intellij Idea 2017 et j’ai eu le même problème. Ce qui a résolu le problème pour moi était de simplement

  1. ferme le projet dans intelliJ
  2. Fichier -> Nouveau -> projet à partir des ressources existantes
  3. utiliser Importer depuis un modèle externe (le cas échéant)
  4. ouvrez à nouveau le projet.

Cela m’est arrivé lorsque j’ai installé Intellij IDEA 2017, allez dans le menu Préférences -> Build, Execution, Deployment -> Debugger et désactivez l’option: “Force Classic VM for JDK 1.3.x et versions antérieures”. Cela fonctionne pour moi.

J’ai trouvé l’autre solution de contournement: exclure libinstrument.dylib du chemin du projet. Pour ce faire, allez dans les Préférences -> Construire, Exécuter et Déployer -> Compilateur -> Exclure -> + et ajoutez ici le fichier par le chemin dans le message d’erreur.

Cela a été un problème pour moi il y a des années et je l’avais déjà corrigé dans Eclipse en excluant 1.7 de mes projets, mais cela est devenu un problème pour IntelliJ, que j’ai récemment installé. Je l’ai corrigé par:

  1. Désinstallation du JDK:

     cd /Library/Java/JavaVirtualMachines sudo rm -rf jdk1.8.0_45.jdk 

    ( jdk1.8.0_45.jdk a jdk1.8.0_45.jdk installé; de toute évidence, vous devez désinstaller la version Java répertoriée dans ce dossier. Les fichiers incriminés se trouvent dans ce dossier et doivent être supprimés.)

  2. Téléchargement et installation de JDK 9 .

Notez que la prochaine fois que vous créerez un nouveau projet ou ouvrirez un projet existant, vous devrez définir le SDK du projet pour qu’il pointe vers la nouvelle installation JDK. Vous pouvez également voir ce bogue ou le récupérer si vous avez installé JDK 1.7 dans votre dossier JavaVirtualMachines (ce qui, selon moi, m’est arrivé).

Même erreur, Junit mon Junit et le Junit

 org.junit.jupiter:junit-jupiter-api:5.0.0-M6 

à

 org.junit.jupiter:junit-jupiter-api:5.0.0