La clase JavaLaunchHelper se implementa en dos lugares

291

Hoy actualicé mi Idea Intellij en macOS Sierra, y ahora, cuando ejecuto aplicaciones en la consola, tengo este error:

objc [3648]: la clase JavaLaunchHelper se implementa en /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/bin/java (0x10d19c4c0) y /Library/Java/JavaVirtualMachines/jdk1.0.0k.0_kdk1.0kd_dk1.0dk1.0kd1kd1dk1.0kd1d1 Contenidos / Inicio / jre / lib / libinstrument.dylib (0x10ea194e0). Uno de los dos será usado. Cuál no está definido.

Ess
fuente

Respuestas:

476

Puedes encontrar todos los detalles aquí:

  • IDEA-170117 "objc: la clase JavaLaunchHelper se implementa en ambas ..." advertencia en consolas Run

Es el viejo error en Java en Mac que se activó por el Agente Java que estaba utilizando el IDE al iniciar la aplicación. Este mensaje es inofensivo y es seguro ignorarlo. Comentario del desarrollador de Oracle:

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.

El problema se solucionó en Java 9 y en Java 8 actualización 152 .

Si le molesta o afecta sus aplicaciones de alguna manera (no debería), la solución para IntelliJ IDEA es deshabilitar el idea_rtagente de inicio agregando idea.no.launcher=trueen idea.properties( Help| Edit Custom Properties...). La solución tendrá efecto en el próximo reinicio del IDE.

Sin embargo, no recomiendo deshabilitar el agente de inicio IntelliJ IDEA. Se utiliza para funciones como el apagado elegante (botón Salir), volcados de hilos, soluciones a problemas con una línea de comando demasiado larga que excede los límites del sistema operativo, etc. Perder estas funciones solo por ocultar el mensaje inofensivo probablemente no valga la pena, pero es Depende de usted.

CrazyCoder
fuente
66
¿Qué hace idea_rt? ¿Alguna razón para no deshabilitarlo?
TTT
8
Proporciona una salida elegante, volcados de subprocesos, maneja rutas de clase largas que pueden exceder los límites del sistema operativo, etc. No lo deshabilitaría, especialmente solo por ocultar un mensaje inofensivo.
CrazyCoder
16
Instalé Java 8 actualización 152 y resuelve el problema como en la respuesta. Gracias.
David Victor
3
¿Cuándo será empujado 152 a través de Oracle java se?
Yogesh
1
Instalé IntelliJ CE 2018.2, ejecutando la actualización 191 de Java 8: el mensaje sigue ahí.
Massimiliano Kraus
180

Dado que "este mensaje es inofensivo" (vea la respuesta de @ CrazyCoder ), una solución simple y segura es que puede doblar este mensaje en la consola mediante la configuración de IntelliJ IDEA:

  1. 【Preferencias】 - 【Editor】 - 【General】 - 【Consola】 - 【Doblar las líneas de la consola que contienen】
    Por supuesto, puede usar Action Buscar acción ...】 ( cmd+shift+Aen mac) y escribir Fold console lines that containpara navegar de manera más efectiva.
  2. añadir Class JavaLaunchHelper is implemented in both

imagen

En mi computadora, resulta: (LGTM: b)

imagen

Y puede desplegar el mensaje para verificarlo nuevamente:

imagen

PD:

A partir de octubre de 2017, este problema ahora se resuelve en jdk1.9 / jdk1.8.152 / jdk1.7.161
para obtener más información, consulte la respuesta de @ muttonUp )

oldratlee
fuente
13

Estoy usando Intellij Idea 2017 y me metí en el mismo problema. Lo que resolvió el problema para mí fue simplemente

  1. cerrar el proyecto en intelliJ
  2. Archivo -> Nuevo -> proyecto a partir de recursos existentes
  3. utilizar Importar desde modelo externo (si lo hay)
  4. Abra el proyecto nuevamente.
lnarasimhan
fuente
55
la close then opensolución clásica =))
Khoa
Intenté todas las soluciones proporcionadas aquí como respuestas, pero solo esta solución funcionó para mí. Sugiero eliminar la .ideacarpeta antes de volver a importar.
Rishabh
Esto no funcionó para mí en IDEA 2017.3.1 en macOS Sierra con Java 8 actualización 151. Sin embargo, la actualización a 152 lo solucionó después de reiniciar IDEA y configurar mi proyecto para usar la actualización 152.
akubot
1

Esto me sucedió cuando instalé Intellij IDEA 2017, vaya al menú Preferencias -> Compilación, Ejecución, Implementación -> Depurador y desactive la opción: "Force Classic VM for JDK 1.3.xy anterior". Esto me funciona.

Danny Guo
fuente
2
Es posible que también necesite deshabilitar el agente del iniciador idea_rt como lo menciona CrazyCoder. agregando idea.no.launcher = true en idea.properties (Ayuda | Editar propiedades personalizadas ...). Asegúrese de reiniciar IDE después de esto.
Danny Guo
Sí, la solución de propiedad personalizada funciona, su sugerencia no hace nada en mi sistema. ¿Has probado tu respuesta, es decir, alternar la configuración? No veo cómo una opción pre JDK 1.3.x puede tener algún efecto. Estoy en Java 8.
David Victor
Para mí, probé la propiedad personalizada al principio, no me funciona. entonces encontré esta solución deshabilitar JDK1.3.x. Después de reiniciar IDE, todo funciona bien.
Danny Guo
1
@DannyGuo ya que el problema es causado por cualquier agente de Java y en modo de depuración el agente de Java se usa de todos modos para las JVM modernas, esto ha solucionado el problema solo en modo de depuración, pero tendrá el problema en el modo Ejecutar cuando el agente de inicio esté habilitado
CrazyCoder
0

He encontrado la otra solución: excluir libinstrument.dylibde la ruta del proyecto. Para hacerlo, vaya a Preferencias -> Compilación, ejecución e implementación -> Compilador -> Excluye -> + y aquí agregue el archivo por la ruta en el mensaje de error.

gasabr
fuente
0

Esto fue un problema para mí hace años y anteriormente lo arreglé en Eclipse al excluir 1.7 de mis proyectos, pero se convirtió nuevamente en un problema para IntelliJ, que instalé recientemente. Lo arreglé por:

  1. Desinstalar el JDK:

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

    (Lo jdk1.8.0_45.jdkinstalé; obviamente, debe desinstalar la versión de Java que aparezca en esa carpeta. Los archivos ofensivos se encuentran en esa carpeta y deben eliminarse).

  2. Descarga e instalación de JDK 9 .

Tenga en cuenta que la próxima vez que cree un nuevo proyecto, o abra un proyecto existente, deberá configurar el SDK del proyecto para que apunte a la nueva instalación de JDK. También es posible que vea este error o que se repita si tiene instalado JDK 1.7 en su carpeta JavaVirtualMachines (que es lo que creo que me pasó).

Allison
fuente
0

Mismo error, actualizo mi Junity lo resuelvo

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

a

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