Sé que hay algunos JAVA_OPTS configurados para depurar remotamente un programa Java.¿Qué opciones de línea de comandos de Java se configuran para permitir que la JVM se depure remotamente?
¿Qué son y qué significan?
Sé que hay algunos JAVA_OPTS configurados para depurar remotamente un programa Java.¿Qué opciones de línea de comandos de Java se configuran para permitir que la JVM se depure remotamente?
¿Qué son y qué significan?
que tienen this article Bookmarked acerca de esta configuración con Eclipse para Java 5 y por debajo.
Básicamente run it with:
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044
Para Eclipse con Java 5 and above, ejecutarlo con:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=1044
Antes de Java 5.0, utilice -Xdebug
-Xrunjdwp
y argumentos. Estas opciones seguirán funcionando en versiones posteriores, pero se ejecutará en modo interpretado en lugar de JIT, que será más lento.
De Java 5.0, es mejor utilizar el -agentlib:jdwp
sola opción:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=1044
Opciones en -Xrunjdwp
o agentlib:jdwp
argumentos son:
transport=dt_socket
: significa que la forma utilizada para conectarse a JVM (socket es una buena opción, que puede ser utilizado para depurar un ordenador remoto)address=8000
: puerto TCP/IP expuesto, para conectar desde el depurador,suspend=y
: si 'y', decirle a la JVM que esperar hasta el depurador asociado a comenzar la ejecución, de lo contrario (si 'n'), se inicia la ejecución de inmediato.para Java 1.5 o mayor:
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í es 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
Hay una gran cantidad de problemas de medio ambiente si está utilizando Maven. Por lo tanto, si inicia su programa desde Maven, simplemente ejecute el comando mvnDebug
en lugar del mvn
y adjunte un depurador en el puerto 8000. Se encargará de todos los problemas de entorno.
Desde Java 9,0 JDWP sólo es compatible con las 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 el programa con *:
en dirección:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8000
Su son exactamente correcto .. He intentado con ** - Xdebug ** y ** - ** Xrunjdwp pero no me paré' t trabajo. cuando probé con ** - Xrunjdwp ** o ** agentlib: jdwp ** Está funcionando.(en Java 7) – RoboAlex
Esto solo funcionó para mí cuando puse comillas, de lo contrario obtuve este error: ERROR: JDWP Transporte no servidor dt_socket server = y suspend = y address = 8000 debe tener una dirección de conexión especificada a través del ' address = 'option – Ring
Está 'Xrunjdwp' obsoleto (¿o eliminado?) ¿por qué elegiríamos' agentlib: jdwp' sobre él? – ArtOfWarfare