web-dev-qa-db-fra.com

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

Aujourd'hui, j'ai mis à niveau mon idée Intellij Idea sur macOS Sierra et maintenant, lorsque j'exécute des applications dans la console, le message d'erreur suivant s'affiche:

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/Java/JavirtualMachines/jdk1. Sommaire/Accueil/jre/lib/libinstrument.dylib (0x10ea194e0). Un des deux sera utilisé. Lequel n'est pas défini.

268
Ess

Vous pouvez trouver tous les détails ici:

  • IDEA-170117 "objc: La classe JavaLaunchHelper est implémentée dans les deux ..." avertissement dans les consoles d'exécution

C'est le ancien bug en Java sur Mac qui a été déclenché par l'agent Java Agent utilisé par l'IDE lors du démarrage de l'application . Ce message est inoffensif et peut être ignoré en toute sécurité. Commentaire du développeur Oracle:

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

Le le problème est résol dans Java 9 et dans Java 8 update 152 .

Si cela vous gêne ou affecte vos applications de quelque manière que ce soit (cela ne devrait pas être le cas), la solution de contournement pour IntelliJ IDEA consiste à désactiver l'agent de lancement 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 ne recommande cependant pas de désactiver IntelliJ IDEA agent de lancement. Il est utilisé pour des fonctionnalités telles que l'arrêt progressif (bouton Quitter), les dumps de threads, les solutions de contournement: problème lié à une ligne de commande trop longue dépassant les limites du système d'exploitation, etc. Le fait de perdre ces fonctionnalités simplement pour cacher le message inoffensif n'en vaut probablement pas la peine, mais dépend de vous.

449
CrazyCoder

Puisque “ce message est inoffensif” (voir la réponse de @ CrazyCoder ), un simple et safe La solution de contournement est que vous pouvez plier ce message vibrant dans la console avec les paramètres IntelliJ IDEA:

  1. Préférences - Éditeur】 - Général - Console - Repliez les lignes de la console contenant
    Vous pouvez bien entendu utiliser 【Rechercher une action ...】 (cmd+shift+A sur mac) et taper Fold console lines that contain afin de naviguer plus efficacement.
  2. ajouter Class JavaLaunchHelper is implemented in both

image

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

image

Et vous pouvez déplier 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 )

157
oldratlee

J'utilise Intellij Idea 2017 et je suis confronté au même problème. Ce qui a résolu le problème pour moi était de simplement

  1. fermer le projet dans intelliJ
  2. Fichier -> Nouveau -> projet à partir de ressources existantes
  3. utilisez Import depuis un modèle externe (le cas échéant)
  4. ouvrez le projet à nouveau.
12
lnarasimhan

C'est ce qui m'est arrivé lorsque j'ai installé Intellij IDEA 2017 dans le menu Préférences -> Construire, Exécution, Déploiement -> Débogueur et désactiver l'option: "Force Classic VM pour JDK 1.3. x et plus tôt ". Cela fonctionne pour moi.

1
Danny Guo

J'ai trouvé l'autre solution de contournement: exclure libinstrument.dylib du chemin du projet. Pour ce faire, allez dans Préférences -> Construction, exécution et déploiement -> Compilateur -> Excludes - > + et ajoutez ici le fichier par le chemin dans le message d'erreur.

0
gasabr

C’était un problème pour moi il ya des années et j’avais déjà résolu ce problème dans Eclipse en excluant la version 1.7 de mes projets, mais c’est redevenu 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
    

    (J'avais jdk1.8.0_45.jdk installé; vous devez évidemment désinstaller la version de 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éez un nouveau projet ou ouvrez un projet existant, vous devez définir le kit SDK du projet de sorte qu'il pointe vers la nouvelle installation JDK. Vous pouvez aussi toujours voir ce bogue ou le perdre si vous avez JDK 1.7 installé dans votre dossier JavaVirtualMachines (ce qui, je crois, m'est arrivé).

0
Allison

Même erreur, je mets à jour mon Junit et le résous

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

à

org.junit.jupiter:junit-jupiter-api:5.0.0
0
Q.Lee