Réponses:
J'ai cet article mis en signet sur la configuration de cela pour Java 5 et ci-dessous.
Exécutez-le essentiellement avec :
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044
Pour Java 5 et supérieur , exécutez-le avec:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=1044
Avant Java 5.0, utilisez -Xdebuget -Xrunjdwparguments. Ces options fonctionneront toujours dans les versions ultérieures, mais elles s'exécuteront en mode interprété au lieu de JIT, qui sera plus lent.
Depuis Java 5.0, il est préférable d'utiliser la -agentlib:jdwpseule option:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=1044
Les options -Xrunjdwpou agentlib:jdwparguments sont:
transport=dt_socket : signifie le moyen utilisé pour se connecter à la JVM (le socket est un bon choix, il peut être utilisé pour déboguer un ordinateur distant)address=8000 : Port TCP / IP exposé, pour se connecter depuis le débogueur, suspend=y : si 'y', dites à la JVM d'attendre que le débogueur soit attaché pour commencer l'exécution, sinon (si 'n'), commence immédiatement l'exécution.Xrunjdwpobsolète (ou supprimé?) Pourquoi le choisirions-nous agentlib:jdwp?
-Xdebug -Xrunjdwplors du débogage des projets Maven, et ils fonctionnent comme s'ils étaient JIT.
Depuis Java 9.0, JDWP ne prend en charge que les connexions locales par défaut. http://www.oracle.com/technetwork/java/javase/9-notes-3745703.html#JDK-8041435
Pour le débogage à distance, il faut exécuter le programme avec l' *:adresse in:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8000
Pour java 1.5 ou supérieur:
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 <YourAppName>
Pour java 1.4:
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 <YourAppName>
Pour java 1.3:
java -Xnoagent -Djava.compiler=NONE -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 <YourAppName>
Voici la sortie d'un programme 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 spécifie le port sur lequel il permettra le débogage
** Déboguer l'application Spring Boot avec Maven:
mvn spring-boot:run -Drun.jvmArguments=**"-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8001"
Voici la solution la plus simple.
De nombreuses configurations spéciales d'environnement sont nécessaires si vous utilisez Maven. Donc, si vous démarrez votre programme à partir de maven, exécutez simplement la mvnDebugcommande à la place de mvn, il se chargera de démarrer votre application avec le débogage à distance configuré. Maintenant, vous pouvez simplement attacher un débogueur sur le port 8000.
Il s'occupera de tous les problèmes environnementaux pour vous.
-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=PORT_NUMBER
Ici, nous utilisons simplement un connecteur de connexion de socket, qui est activé par défaut lorsque le transport dt_socket est configuré et que la machine virtuelle s'exécute en mode de débogage du serveur.
Pour plus de détails, vous pouvez vous référer à: https://stackify.com/java-remote-debugging/
*:1044pour activer le débogage à distance à partir de n'importe quel ordinateur