Respuestas:
Tengo este artículo marcado como favorito para configurar esto para Java 5 y siguientes.
Básicamente ejecútalo con :
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044
Para Java 5 y superior , ejecútelo con:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=1044
Antes de Java 5.0, uso -Xdebug
y -Xrunjdwp
argumentos. Estas opciones seguirán funcionando en versiones posteriores, pero se ejecutarán en modo interpretado en lugar de JIT, que será más lento.
Desde Java 5.0, es mejor usar la -agentlib:jdwp
opción única:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=1044
Las opciones -Xrunjdwp
o agentlib:jdwp
argumentos son:
transport=dt_socket
: significa la forma en que se conecta 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 es 'y', dígale a la JVM que espere hasta que se adjunte el depurador para comenzar la ejecución; de lo contrario (si 'n'), comienza la ejecución de inmediato.Xrunjdwp
desuso (o eliminado)? ¿Por qué lo elegiríamos agentlib:jdwp
?
-Xdebug -Xrunjdwp
al depurar proyectos de Maven, y se ejecutan como si estuvieran JIT.
Desde Java 9.0 JDWP solo admite conexiones locales de forma predeterminada. http://www.oracle.com/technetwork/java/javase/9-notes-3745703.html#JDK-8041435
Para la depuración remota, se debe ejecutar un programa con la *:
dirección de entrada:
-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 <YourAppName>
Para java 1.4:
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 <YourAppName>
Para java 1.3:
java -Xnoagent -Djava.compiler=NONE -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 <YourAppName>
Aquí está la salida de un programa simple:
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044 HelloWhirled
Listening for transport dt_socket at address: 1044
Hello whirled
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á depurar
** Depurar la aplicación Spring Boot con Maven:
mvn spring-boot:run -Drun.jvmArguments=**"-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8001"
Aquí está la solución más fácil.
Hay muchas configuraciones especiales de entorno necesarias si está utilizando Maven. Entonces, si inicia su programa desde maven, simplemente ejecute el mvnDebug
comando en lugar de hacerlo mvn
, se encargará de iniciar su aplicación con la depuración remota configurada. Ahora puede adjuntar un depurador en el puerto 8000.
Se encargará de todos los problemas ambientales para usted.
-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=PORT_NUMBER
Aquí solo usamos un conector de conexión de socket, que está habilitado de forma predeterminada cuando se configura el transporte dt_socket y la VM se ejecuta en el modo de depuración del servidor.
Para obtener más detalles, puede consultar: https://stackify.com/java-remote-debugging/
*:1044
para habilitar la depuración remota desde cualquier computadora