¿Qué opciones de línea de comandos de Java se configuran para permitir que la JVM se depure remotamente?

Sé que hay algunos JAVA_OPTS para configurar para depurar remotamente un progtwig Java.

¿Qué son y qué significan?

Tengo este artículo marcado para configurarlo con Eclipse para Java 5 y versiones posteriores.

Básicamente ejecutarlo con :

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

Para Eclipse con Java 5 y superior , ejecútelo con:

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

Antes de Java 5.0, use los argumentos -Xdebug y -Xrunjdwp . Estas opciones seguirán funcionando en versiones posteriores, pero se ejecutará en modo interpretado en lugar de JIT, que será más lento.

Desde Java 5.0, es mejor usar la -agentlib:jdwp single:

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

Las opciones en los -Xrunjdwp o agentlib:jdwp son:

  • transport=dt_socket : significa el camino utilizado para conectarse a JVM (el socket es una buena opción, se puede usar para depurar una computadora distante)
  • address=8000 : puerto TCP / IP expuesto, para conectarse desde el depurador,
  • suspend=y : si ‘y’, dile a la JVM que espere hasta que el depurador esté conectado para comenzar la ejecución, de lo contrario (si ‘n’), comienza la ejecución de inmediato.

Dado que Java 9.0 JDWP solo admite conexiones locales de manera predeterminada. http://www.oracle.com/technetwork/java/javase/9-notes-3745703.html#JDK-8041435

Para la depuración remota, se debe ejecutar el progtwig con *: en la dirección:

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

Para Java 1.5 o superior:

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

Para java 1.4:

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

Para java 1.3:

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

Aquí está la salida de un progtwig simple:

 java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044 HelloWhirled Listening for transport dt_socket at address: 1044 Hello whirled 

Hay muchos problemas ambientales si usa Maven. Por lo tanto, si inicia su progtwig desde maven, simplemente ejecute el comando mvnDebug en lugar de mvn y adjunte un depurador en el puerto 8000. Se encargará de todos los problemas de entorno.

Java

java -Xdebug -Xrunjdwp: transport = dt_socket, server = y, address = 8001, suspend = y -jar target / cxf-boot-simple-0.0.1-SNAPSHOT.jar

address especifica el puerto en el que permitirá la depuración

Maven

Aplicación Debug Spring Boot con Maven: mvn spring-boot: run -Drun.jvmArguments = “-Xdebug -Xrunjdwp: transport = dt_socket, server = y, suspend = y, address = 8001”