Quais são as opções da linha de comandos Java a definir para permitir que o JVM seja depurado remotamente?
Eu sei que há alguns JAVA_OPTS para configurar remotamente para depurar um programa Java.
O que são e o que significam ?6 answers
Tenho este artigo marcado ao configurar isto com o Eclipse para o Java 5 e abaixo.
Basicamente mostra com:
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044
Para o Eclipse com Java 5 e acima , Execute-o com:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=1044
Antes do Java 5.0, use os argumentos -Xdebug
e -Xrunjdwp
. Estas opções ainda funcionarão em versões posteriores, mas serão executadas em modo interpretado em vez de JIT, que será mais lento.
Do Java 5.0, é melhor usar a opção -agentlib:jdwp
única:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=1044
As opções em -Xrunjdwp
ou agentlib:jdwp
argumentos são:
-
transport=dt_socket
: significa a forma como se liga ao JVM (o socket é uma boa escolha, pode ser usado para depurar um computador distante) -
address=8000
: porta TCP/IP exposta, para se ligar a partir do depurador, -
suspend=y
: SE 'y', diga ao JVM para esperar até que o depurador esteja ligado para iniciar a execução, caso contrário (se 'n'), inicia a execução imediatamente.
Desde que o Java 9. 0 JDWP suporta apenas as ligações locais por omissão. http://www.oracle.com/technetwork/java/javase/9-notes-3745703.html#JDK-8041435
Para depuração remota, deve-se executar o programa com *:
no endereço:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8000
Para java 1.5 ou 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>
Aqui está a saÃda de um programa simples:
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044 HelloWhirled
Listening for transport dt_socket at address: 1044
Hello whirled
mvnDebug
em vez de mvn
e anexe um depurador no Porto 8000. Trata de todos os problemas ambientais.
Java
Java-Xdebug-Xrunjdwp:transport=dt_socket,server=y,address=8001,suspende=y-jar target/cxf-boot-simple-0.0. 1-SNAPSHOT.jar
address
indica o porto em que permitirá depurar
Maven
Depurar a aplicação de arranque de molas com o Maven: mvn spring-boot: run-Drun.jvmArguments= "- Xdebug-Xrunjdwp: transport=dt_socket, server = y, suspende=y, address=8001 "