La classe JavaLaunchHelper è implementata in entrambi ... libinstrument.dylib. Verrà utilizzato uno dei due. Quale non è definito


274

Ho eseguito l' aggiornamento all'ultima versione di Java 7u40 su MacOS X e ho iniziato a ricevere il seguente messaggio sulla console all'avvio della mia applicazione tramite Eclipse. L'app funziona bene, ma vorrei scoprire la causa del problema e spero di risolverlo.

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.

Qualcuno sa perché questo messaggio è stampato e come risolverlo?


3
Anche se questa potrebbe essere un'opzione praticabile per risolvere questo specifico tipo di problema, ciò potrebbe renderti vulnerabile alle falle di sicurezza risolte in u45 e oltre.
Matthias Wenz,

5
La stessa cosa sta succedendo con jdk1.8.0_05
neu242,

28
È passato un anno e il bug infastidisce ancora tutti gli sviluppatori Java che utilizzano un Mac (verificato con jdk1.7.0_67 su OS X 10.9.3). Vergognoso. Qualcuno con il login appropriato può riaprire questi bug bugs.java.com/bugdatabase/view_bug.do?bug_id=8021205 e bugs.openjdk.java.net/browse/JDK-8025876
Tobia

8
Il bug esiste ancora per jdk1.8.0_25. È solo un messaggio fastidioso o un problema reale?
Churk

7
Una segnalazione di bug di questo problema suggerisce che una correzione potrebbe essere inclusa nella versione JDK9. Lo stesso bug report dice: "Per coloro che continuano a chiedere questo: il messaggio è benigno, non vi è alcun impatto negativo da questo problema poiché entrambe le copie di quella classe sono identiche (compilate dalla stessa identica fonte). È puramente un problema estetico ".
Giordania,

Risposte:


176

⚠️ Per JetBrains IntelliJ IDEA : vai a Help -> Edit Custom Properties.... Crea il file se ti chiede di crearlo. Per disabilitare il messaggio di errore, incollare quanto segue nel file creato:

idea_rt
idea.no.launcher=true

Ciò avrà effetto al riavvio di IntelliJ.

Sono su Eclipse IDE Versione: Photon Release (4.8.0) ID build: 20180619-1200 con macOS 10.14.6 (Mojave). Ho aggiunto la linea idea.no.launcher=truein <install location>/eclipse/configuration/config.inie questo ha risolto il problema per me.


9
Ha funzionato per me senza fare altro. Questo dovrebbe essere contrassegnato come corretto.
trishulpani,

7
Ha funzionato per me su IDEA 2017.1.3 OSX 10.12.5 JRE 1.8
Daniel Rucci,

2
L'OP stava usando Eclipse, non IntelliJ. Quindi stai dando loro le istruzioni per modificare le impostazioni nell'editor sbagliato (quindi non essere contrassegnato come corretto).
Allison,

2
Sono d'accordo con @Allison - se questa risposta includesse un mezzo per Eclipse sarebbe eccellente. Ma rispondendo per l'IDE sbagliato?
Daniel Soutar,

1
Ha funzionato per IntelliJ 2018.3.3 CE, SDKMAN 5.7.3 + 337 e OpenJDK versione "1.8.0_131" (Zulu 8.21.0.1-macosx).
David


20
  1. Installa Java 7u21 da: http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html#jdk-7u21-oth-JPR

  2. Imposta queste variabili:

    export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_21.jdk/Contents/Home
    export PATH=$JAVA_HOME/bin:$PATH
  3. Esegui la tua app e divertiti :)


3
Funziona anche per 1.8.0_92: # in .zshrc o .bashrc export JAVA_HOME = / Library / Java / JavaVirtualMachines / jdk1.8.0_92.jdk / Contenuti / Home export PERCORSO = $ JAVA_HOME / bin: $ PATH
BvuRVKyUVlViVIc7

@Lichtamberg ringrazia questo risolto i miei problemi su Java 8 mac osx. Ho aggiunto il tuo commento come risposta poiché quasi tutte le altre risposte funzionano ma ora sono assolute.
Pritesh Jain,

1
@gotoalberto In che modo questa variabile di ambiente risolverà il problema quando l'implementazione di JavaLaunchHelper risiede nella directory Home?
Prashant il

1
@Lichtamberg Sto usando il sonar runner per iniziare a valutare la copertura del codice della mia app. Ricevo ancora lo stesso problema con la versione che hai menzionato sopra. anche se ho provato molte versioni 8 con le sue patch nel mio mac os. Senza fortuna.
Sathish,

NON FARLO. Java 7u21 (oltre a essere stato rilasciato nel 2013 e quindi aver perso quattro anni di patch grandi e piccoli) ha una vulnerabilità di esecuzione del codice arbitraria: gist.github.com/frohoff/24af7913611f8406eaf3
mseebach

11

Copia i commenti di Pasting @ Lichtamberg alla risposta di gotoalberto

Funziona anche per 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 

Questo risolto il mio problema su Java 8.


4
Ancora riscontrato il problema in Android Studio (2.2p3) dopo aver modificato ~ / .zshrc e ~ / .bashrc
Mic Fok il

non funziona per Intellij, c'è un passaggio successivo dopo aver creato / modificato questi file?
xpto

5

Non sono sicuro che questa sia la causa del problema, ma ho riscontrato questo problema solo dopo aver installato JVM Monitor .

La disinstallazione di JVM Monitor ha risolto il problema per me.


Lo stesso qui, JVM Monitor per Eclipse stava causando il messaggio (JBoss 7.1, JDK 1.8.0.X).
psychowood,

È iniziato per me quando ho installato il plugin eclEmma in eclipse
Nooblhu,

Lo stesso problema qui. Disinstallato il monitor JVM e questo non viene più visualizzato
Zhiya

4

Come dettagliato altre risposte, questo è un bug nel JDK (fino a u45) che verrà risolto in JDK7u60 - mentre questo non è ancora disponibile, puoi scaricare il b01 da: https://jdk7.java.net/download. html

È beta, ma risolto quel problema per me.


11
Ho installato u60 ma ottengo ancora la classe JavaLaunchHelper è implementata in entrambi /Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk/Contents/Home/bin/java e /Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk/Contents/ Home / jre / lib / libinstrument.dylib. Verrà utilizzato uno dei due. Quale non è definito.
Rich Sadowsky il

sembra che sia stato reintrodotto tra b01 e b02
npskirk il

2
Qualche riferimento al bug? URL?
binarytemple_picsolve il

3
In realtà non è stato ancora risolto. Hanno appoggiato la correzione di u60
Zanson,

2

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

Da quello che ho trovato online, questo è un bug introdotto in JDK 1.7.0_45. Ho letto che verrà risolto nella prossima versione di Java, ma non è ancora uscito. Presumibilmente, è stato corretto in 1.7.0_60b01, ma non riesco a trovare dove scaricarlo e 1.7.0_60b02 reintroduce il bug.

Sono riuscito a risolvere il problema tornando a JDK 1.7.0_25. Probabilmente non è la soluzione che volevi, ma è l'unico modo in cui sono stato in grado di farlo funzionare. Non dimenticare di aggiungere JDK 1.7.0_25 in Eclipse dopo aver installato JDK.

NON RISPONDERE direttamente a questa e-mail ma vai a StackOverflow: la classe JavaLaunchHelper è implementata in entrambi. Verrà utilizzato uno dei due. Quale non è definito


1

Per risolvere questo problema, ho eseguito il downgrade alla versione 1.7.0_21 di JDK . poi ho usato questo piccolo script bash per cambiare la versione che 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:?;;")
 }

Una volta che hai lo script bash nel tuo file zshrc / bshrc, chiama setJdk 1.7.0_21e sei a posto.


0

Bene, dopo alcune difficoltà, quello che ha funzionato per me è stato rimuovere completamente l'attuale JDK, come descritto qui :

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

Quindi ha installato 1.7.0_21, che è stato scaricato da qui .

Ora java -versionrichiede:

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

Luglio 2019

OSX Mojave 10.14.5 (18F132) IntelliJ 2019-1 Community Edition. Ha funzionato impostando il file idea.properties. Ho anche configurato JAVA_HOME che punta a /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/

proprietà IntelliJ IDEA personalizzate

idea_rt idea.no.launcher = true


-2

Se stai usando IntelliJ e Mac, vai su Struttura progetto -> SDK e assicurati che sia elencato Java ma che punta a

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

Piuttosto che l'utente a casa ...


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.