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.

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.


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 )


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.

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.


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.


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ó).


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
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.