La clase JavaLaunchHelper se implementa en ambos ... libinstrument.dylib. Uno de los dos será usado. Cuál es indefinido


274

Actualicé al último Java 7u40 en MacOS X y comencé a recibir el siguiente mensaje en la consola al iniciar mi aplicación usando Eclipse. La aplicación funciona bien, pero me gustaría averiguar la causa del problema y, con suerte, una solución.

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.

¿Alguien sabe por qué se imprime este mensaje y cómo solucionarlo?


3
Si bien esta podría ser una opción viable para remediar este tipo específico de problema, esto podría hacerlo vulnerable a las fugas de seguridad solucionadas en u45 y más allá.
Matthias Wenz

55
Lo mismo está sucediendo con jdk1.8.0_05
neu242

28
Ha pasado un año y el error sigue molestando a todos los desarrolladores de Java que utilizan Mac (verificado con jdk1.7.0_67 en OS X 10.9.3). Vergonzoso. ¿Puede alguien con el inicio de sesión correspondiente por favor, vuelva a abrir estos errores bugs.java.com/bugdatabase/view_bug.do?bug_id=8021205~~V~~plural~~3rd y bugs.openjdk.java.net/browse/JDK-8025876
Tobia

8
El error todavía existe para jdk1.8.0_25. ¿Es solo un mensaje persistente o un problema real?
Churk

77
Un informe de error de este problema sugiere que se puede incluir una solución con la versión JDK9. El mismo informe de error dice esto: "Para aquellos que siguen preguntando sobre esto: el mensaje es benigno, no hay un impacto negativo de este problema ya que ambas copias de esa clase son idénticas (compiladas de la misma fuente). Es puramente un problema cosmético ".
Jordania

Respuestas:


176

⚠️ Para JetBrains IntelliJ IDEA : vaya a Help -> Edit Custom Properties.... Cree el archivo si le pide que lo cree. Para deshabilitar el mensaje de error, pegue lo siguiente en el archivo que creó:

idea_rt
idea.no.launcher=true

Esto surtirá efecto al reiniciar el IntelliJ.

Estoy en Eclipse IDE Versión: Photon Release (4.8.0) ID de compilación: 20180619-1200 con macOS 10.14.6 (Mojave). He añadido la línea idea.no.launcher=trueen <install location>/eclipse/configuration/config.iniy esto ha solucionado el problema para mí.


9
Trabajó para mí sin hacer nada más. Esto debe marcarse como correcto.
Trishulpani

77
Trabajó para mí en IDEA 2017.1.3 OSX 10.12.5 JRE 1.8
Daniel Rucci

2
El OP estaba usando Eclipse, no IntelliJ. Entonces, les está dando instrucciones para modificar la configuración en el editor incorrecto (por lo tanto, no está marcado como correcto).
Allison

2
Estoy de acuerdo con @Allison: si esta respuesta incluyera un medio para Eclipse, sería excelente. ¿Pero respondiendo por el IDE equivocado?
Daniel Soutar

1
Trabajó para IntelliJ 2018.3.3 CE, SDKMAN 5.7.3 + 337 y OpenJDK versión "1.8.0_131" (Zulu 8.21.0.1-macosx).
David Lukac

117

A partir de octubre de 2017, este problema ahora está resuelto en


44
Acabo de instalar la versión de Java "1.8.0_144", y me enfrenté al problema.
Reihan_amn

2
@Reihan_amn lo harás, hasta la construcción 152
muttonUp

1
Tuve problemas con jdk1.8.65 pero jdk1.8.152 solucionó este problema. Gracias
Anshul

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

  2. Establezca estas variables:

    export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_21.jdk/Contents/Home
    export PATH=$JAVA_HOME/bin:$PATH
  3. Ejecuta tu aplicación y diviértete :)


3
Funciona también para 1.8.0_92: # en .zshrc o .bashrc export JAVA_HOME = / Library / Java / JavaVirtualMachines / jdk1.8.0_92.jdk / Contents / Home export PATH = $ JAVA_HOME / bin: $ PATH
BvuRVKyUVlViVIc7

@Lichtamberg agradece que esto haya solucionado mis problemas en Java 8 mac osx. He agregado su comentario como respuesta, ya que casi todas las otras respuestas funcionan, pero ahora son absolutas.
Pritesh Jain

1
@gotoalberto ¿Cómo resolverá el problema esta variable de entorno cuando tanto la implementación de JavaLaunchHelper reside en el directorio de inicio?
Prashant

1
@Lichtamberg Estoy usando el sonar runner para comenzar a evaluar la cobertura del código de mi aplicación. Todavía tengo el mismo problema con la versión que mencionaste anteriormente. aunque he probado muchas versiones 8 con sus parches en mis mac os. Sin suerte.
Sathish

NO HAGAS ESTO. Java 7u21 (además de ser lanzado en 2013 y haberse perdido cuatro años de parches grandes y pequeños) tiene una vulnerabilidad de ejecución de código arbitrario: gist.github.com/frohoff/24af7913611f8406eaf3
mseebach

11

Copie los comentarios de Pegar @ Lichtamberg a la respuesta de gotoalberto

Funciona también para 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 

Esto solucionó mi problema en Java 8.


44
Sigo experimentando el problema en Android Studio (2.2p3) después de editar ~ / .zshrc y ~ / .bashrc
Mic Fok

no funciona para intellij, ¿hay un siguiente paso después de crear / editar estos archivos?
xpto

5

No estoy seguro de si esta es la causa del problema, pero obtuve este problema solo después de instalar JVM Monitor .

Desinstalar JVM Monitor me resolvió el problema.


Lo mismo aquí, JVM Monitor para Eclipse estaba causando el mensaje (JBoss 7.1, JDK 1.8.0.X).
psychowood

Comenzó para mí cuando instalé el complemento eclEmma en eclipse
Nooblhu

El mismo problema aqui. Monitor JVM desinstalado y esto ya no aparece
Zhiya

4

Como se detalla en otras respuestas, este es un error en el JDK (hasta u45) que se solucionará en JDK7u60; aunque esto aún no está disponible, puede descargar el b01 desde: https://jdk7.java.net/download. html

Es beta, pero solucionó ese problema para mí.


11
Instalé u60 pero aún obtengo Class JavaLaunchHelper está implementado en /Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk/Contents/Home/bin/java y /Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk/Contents Inicio / jre / lib / libinstrument.dylib. Uno de los dos será usado. Cuál no está definido.
Rich Sadowsky

parece que fue reintroducido entre b01 y b02
npskirk

2
¿Alguna referencia al error? URL?
binarytemple_picsolve

3
En realidad no está arreglado todavía. Respaldaron la solución de u60
Zanson

2

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

Por lo que he encontrado en línea, este es un error introducido en JDK 1.7.0_45. He leído que se solucionará en la próxima versión de Java, pero aún no está disponible. Supuestamente, se solucionó en 1.7.0_60b01, pero no puedo encontrar dónde descargarlo y 1.7.0_60b02 reintroduce el error.

Logré solucionar el problema volviendo a JDK 1.7.0_25. Probablemente no sea la solución que deseabas, pero es la única forma en que he podido hacer que funcione. No olvide agregar JDK 1.7.0_25 en Eclipse después de instalar el JDK.

NO RESPONDA directamente a este correo electrónico, pero vaya a StackOverflow: la clase JavaLaunchHelper se implementa en ambos. Uno de los dos será usado. Cuál es indefinido


1

Para resolver este problema, bajé a la versión JDK 1.7.0_21 . luego usé este pequeño script bash para cambiar la versión que 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 vez que tenga el script bash en su archivo zshrc / bshrc, simplemente llame setJdk 1.7.0_21y estará listo.


0

Bueno, después de algunas dificultades, lo que funcionó para mí fue eliminar completamente el JDK actual, como se describe aquí :

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

Luego instaló 1.7.0_21, que fue descargado desde aquí .

Ahora java -versionsolicita:

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

Julio 2019

OSX Mojave 10.14.5 (18F132) IntelliJ 2019-1 Community Edition. Funcionó configurando el archivo idea.properties. También configuré JAVA_HOME apuntando a /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/

propiedades personalizadas de IntelliJ IDEA

idea_rt idea.no.launcher = true


-2

Si está utilizando IntelliJ y Mac, simplemente vaya a Estructura del proyecto -> SDK y asegúrese de que haya Java en la lista, pero apunta a algo como

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

En lugar de usuario en casa ...


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.