Respostas:
Eu tenho este artigo marcado como configuração para Java 5 e abaixo.
Basicamente, execute-o com :
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044
Para Java 5 e superior , execute-o com:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=1044
Antes do Java 5.0, uso -Xdebug
e -Xrunjdwp
argumentos. Essas opções ainda funcionarão em versões posteriores, mas serão executadas no modo interpretado em vez do JIT, que será mais lento.
No Java 5.0, é melhor usar a -agentlib:jdwp
opção única:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=1044
As opções -Xrunjdwp
ou agentlib:jdwp
argumentos são:
transport=dt_socket
: significa a maneira usada para conectar-se à JVM (o soquete é uma boa escolha, pode ser usado para depurar um computador distante)address=8000
: Porta TCP / IP exposta, para conectar-se a partir do depurador, suspend=y
: se 'y', diga à JVM para aguardar até que o depurador seja anexado para iniciar a execução; caso contrário (se 'n'), inicia a execução imediatamente.Xrunjdwp
obsoleto (ou removido?) Por que nós escolhemos agentlib:jdwp
sobre ele?
-Xdebug -Xrunjdwp
ao depurar projetos do Maven e eles são executados como se fossem um JIT.
Como o Java 9.0 JDWP suporta apenas conexões locais por padrão. http://www.oracle.com/technetwork/java/javase/9-notes-3745703.html#JDK-8041435
Para depuração remota, deve-se executar o programa com o *:
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
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8001,suspend=y -jar target/cxf-boot-simple-0.0.1-SNAPSHOT.jar
address
especifica a porta na qual permitirá depurar
** Depure o aplicativo Spring Boot com o Maven:
mvn spring-boot:run -Drun.jvmArguments=**"-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8001"
Aqui está a solução mais fácil.
Existem muitas configurações especiais de ambiente necessárias se você estiver usando o Maven. Portanto, se você iniciar o programa a partir do maven, basta executar omvnDebug
comando em vez de mvn
, ele cuidará de iniciar o aplicativo com a depuração remota configurada. Agora você pode simplesmente conectar um depurador na porta 8000.
Ele cuidará de todos os problemas ambientais para você.
-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=PORT_NUMBER
Aqui, apenas usamos um conector de conexão de soquete, que é ativado por padrão quando o transporte dt_socket está configurado e a VM está sendo executada no modo de depuração do servidor.
Para obter mais detalhes, você pode consultar: https://stackify.com/java-remote-debugging/
*:1044
para permitir a depuração remota de qualquer computador