with sts remote debug application java eclipse jdwp

java - sts - ERROR: JDWP No se puede obtener el entorno JNI 1.2



remote debug sts (6)

Recibo este error después de la depuración en Eclipse. La depuración es exitosa sin embargo.

ERROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2 JDWP exit error AGENT_ERROR_NO_JNI_ENV(183): [../../../src/share/back/util.c:820]

Qué significa eso?


@Todo el mundo que enfrente este problema usando la API de imagen leyendo y escribiendo archivos en la red, cuando ejecuto el programa trabajando con archivos locales esto no sucede. Después de verificar mis resultados, confirmé que realmente no causa ningún daño (al menos en mi depuración). Ahora que estoy leyendo esta publicación, dejé de investigarlo.


Aparentemente es un error de JVM. Es inofensivo e impredecible.


Me he dado cuenta de que esto ocurre cuando estoy usando un espacio de trabajo almacenado en mi unidad USB y, a veces en la red de mi trabajo. No es un problema importante y no parece tener ningún efecto en la ejecución de ninguno de mis programas. Probé la solución de @Vasile Surdu de agregar System.exit(0); hasta el final del método principal y funciona. Another solution is to restart eclipse que funciona para mí la mayor parte del tiempo.


Ocurre en algo tan simple como este tutorial

//trim spaces String s2 = "Welcome!"; int len1 = s2.length(); System.out.println(len1); String s3 = s2.trim(); System.out.println(s3.length());

¿Sucede si el programa se ejecuta demasiado rápido varias veces para que tenga algo que ver con el rendimiento del sistema?

ERROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2 JDWP exit error AGENT_ERROR_NO_JNI_ENV(183): [../../../src/share/back/util.c:838]


Parece http://bugs.sun.com/view_bug.do?bug_id=6476706 que tiene baja prioridad y aún no se ha solucionado. Definitivamente es un error de Mustang pero no hay una explicación clara (parece ocurrir bastante al azar de acuerdo con los reporteros de errores además de eso).


Simplemente agregue System.exit(0); hasta el final de tu método principal.

Eso es todo lo que tienes que hacer.