Je sais qu'il y en a JAVA_OPTS
pour régler le débogage à distance d'un programme Java.
Que sont-ils et que signifient-ils?
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
*:1044
pour activer le débogage à distance à partir de n'importe quel ordinateurAvant Java 5.0, utilisez
-Xdebug
et-Xrunjdwp
arguments. 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:jdwp
seule option:Les options
-Xrunjdwp
ouagentlib:jdwp
arguments 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.la source
Xrunjdwp
obsolète (ou supprimé?) Pourquoi le choisirions-nousagentlib:jdwp
?-Xdebug -Xrunjdwp
lors 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:la source
Pour java 1.5 ou supérieur:
Pour java 1.4:
Pour java 1.3:
Voici la sortie d'un programme simple:
la source
Java
address
spécifie le port sur lequel il permettra le débogageMaven
** Déboguer l'application Spring Boot avec Maven:
la source
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
mvnDebug
commande à la place demvn
, 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.
la source
Ligne de commande
Gradle
Maven
la source
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/
la source