usar new icon example codigo borderfactory java debugging remote-debugging

new - Depuración remota de una aplicación Java



new icon java (5)

Así es como debe configurar Eclipse Debugger para la depuración remota:

Configuraciones 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

  • Nombre: GatewayPortalProject
  • Proyecto: GatewayPortal-portlet
  • Tipo de conexión: Socket Attach
  • Propiedades de conexión: i) localhost ii) 8787

Para JBoss:

/path/toJboss/jboss-eap-6.1/bin/standalone.conf el /path/toJboss/jboss-eap-6.1/bin/standalone.conf en su vm de la siguiente manera: Descomente la siguiente línea eliminando el #:

JAVA_OPTS="$JAVA_OPTS -agentlib:jdwp=transport=dt_socket,address=8787,server=y,suspend=n"

Para Tomcat:

En el archivo catalina.bat :

Paso 1:

CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"

Paso 2:

JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n"

Paso 3: Ejecute Tomcat desde el símbolo del sistema como se muestra a continuación:

catalina.sh jpda start

Luego debe establecer puntos de interrupción en las clases de Java que desea depurar.

Tengo una aplicación java que se ejecuta en la 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. He abierto el puerto en windows también.

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?


La mejor opción de depuración es crear registros y analizar registros. Pero en algunos casos necesitamos depurar la aplicación web implementada en el servidor.

Ver Remotamente depurar un enlace de aplicación web java . El flujo completo de depuración remota se describe aquí. Espero que ayude.


Para JDK 1.3 o anterior:

-Xnoagent -Djava.compiler=NONE -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=6006

Para JDK 1.4

-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=6006

Para JDK más reciente:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=6006

Cambie el número de puerto según sus necesidades.

De Java Technotes.

Desde 5.0 en adelante, la opción -agentlib: jdwp se usa para cargar y especificar opciones para el agente JDWP. Para las versiones anteriores a 5.0, se usan las opciones -Xdebug y -Xrunjdwp (la implementación 5.0 también es compatible con las opciones -Xdebug y -Xrunjdwp pero la opción más nueva -agentlib: jdwp es preferible, ya que el agente JDWP en 5.0 usa la interfaz JVM TI para la VM en lugar de la interfaz JVMDI anterior)

Una cosa más a tener en cuenta, de la documentación de la interfaz de JVM Tool :

JVM TI se introdujo en JDK 5.0. JVM TI reemplaza la Interfaz de perfil de máquina virtual de Java (JVMPI) y la Interfaz de depuración de máquina virtual de Java (JVMDI) que, a partir de JDK 6, ya no se proporcionan.


Pasos:

  1. Inicie su aplicación java remota con opciones de depuración como se dijo en la publicación anterior.
  2. Configure Eclipse para la depuración remota especificando el host y el puerto.
  3. Inicie la depuración remota en Eclipse y espere a que la conexión se realice correctamente.
  4. Configuración de punto de interrupción y depuración.
  5. Si desea depurar desde el inicio de la aplicación, use suspender = y, esto mantendrá la aplicación remota suspendida hasta que se conecte desde eclipse.

Consulte la Guía paso a paso sobre la depuración remota de Java para obtener todos los detalles.


Edit: noté que algunas personas están cortando y pegando la invocación aquí. La respuesta que di originalmente era 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):

java -agentlib:jdwp=transport=dt_socket,server=y,address=8000,suspend=n <other arguments>

La respuesta original sigue.

Prueba esto:

java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=4000,suspend=n myapp

Dos puntos aquí:

  1. No hay espacios en la opción runjdwp .
  2. Las opciones vienen antes del nombre de la clase. ¡Cualquier argumento que tenga después del nombre de la clase son argumentos para su programa!