Tengo una aplicación Java ejecutándose en una máquina Linux. Ejecuto la aplicación Java usando lo siguiente:
java myapp -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=4000, suspend=n
He abierto el puerto 4000 para TCP en esta máquina Linux. Uso eclipse de la máquina con Windows XP e intento conectarme a esta aplicación. También he abierto el puerto en Windows.
Ambas máquinas están en la LAN, pero parece que no puedo conectar el depurador a la aplicación Java. ¿Qué estoy haciendo mal?
java
debugging
remote-debugging
dzidzitop
fuente
fuente
Respuestas:
Editar: Noté que algunas personas están cortando y pegando la invocación aquí. La respuesta que di originalmente fue relevante solo para el OP. Aquí hay un estilo de invocación más moderno (incluido el uso del puerto más convencional de 8000):
La respuesta original sigue.
Prueba esto:
Dos puntos aquí:
runjdwp
opción.fuente
-agentlib
opción de estilo más nuevo para su placer de cortar y pegar. :-)Para JDK 1.3 o anterior:
Para JDK 1.4
Para el nuevo JDK:
Cambie el número de puerto según sus necesidades.
De java technotes
Una cosa más a tener en cuenta, de la documentación de la interfaz de la herramienta JVM :
fuente
Pasos:
Consulte la guía paso a paso sobre depuración remota de Java para obtener todos los detalles.
fuente
Respuesta que cubre Java> = 9:
Para Java 9+, la opción JVM necesita un ligero cambio al prefijar la dirección con la dirección IP de la máquina que aloja la JVM, o simplemente
*
:Esto se debe a un cambio observado en https://www.oracle.com/technetwork/java/javase/9-notes-3745703.html#JDK-8041435 .
Para Java <9, el número de puerto es suficiente para conectarse.
fuente
Me gustaría enfatizar que el orden de los argumentos es importante .
Para mí, el
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000 -jar app.jar
comando abre el puerto del depurador ,pero el
java -jar app.jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000
comando no .fuente
Así es como debe configurar Eclipse Debugger para la depuración remota:
Configuración de Eclipse:
1. Haga clic en el botón Ejecutar
2. Seleccione las configuraciones de depuración
3. Seleccione la "Aplicación Java remota"
4. Nueva configuración
Para JBoss:
1.Cambie el
/path/toJboss/jboss-eap-6.1/bin/standalone.conf
en su vm de la siguiente manera: Elimine el comentario de la siguiente línea eliminando el #:Para Tomcat:
En el archivo catalina.bat :
Paso 1:
Paso 2:
Paso 3: Ejecute Tomcat desde el símbolo del sistema como a continuación:
Luego, debe establecer puntos de interrupción en las clases Java que desea depurar.
fuente
JAVA_TOOL_OPTIONS=-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n
ps perdón por las ediciones, luchando con el formateador.