J'ai un serveur tournant sur DigitalOcean et un fichier JAR que je veux déboguer. Je lance d'abord le fichier JAR sur le serveur distant à l'aide de
Java -jar Server.jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
mais sur la console, je ne vois aucune sortie comme "écoute sur le port 5005 ...".
Quand je presse déboguer dans IntelliJ il dit
impossible d'ouvrir le port du débogueur (198.xxx.xxx.xx: 5005): Java.net.ConnectException "Connexion refusée"
Voici ma configuration IntelliJ:
J'ai aussi essayé d'utiliser -Xdebug
mais cela ne fonctionnait toujours pas.
Si je mets suspend=y
, il devrait attendre qu’un débogueur soit connecté, mais au lieu de cela, il démarre sans problèmes.
La commande permettant de démarrer le processus Java distant en mode débogage semble correcte. Si vous ne voyez pas «Listening to Port blah» lorsque vous démarrez le fichier JAR du serveur, cela peut signifier que les arguments de débogage ne sont pas récupérés. Une autre façon de vérifier rapidement consiste à tester avec un telnet localhost 5005
sur la machine sur laquelle le fichier JAR du serveur est en cours d'exécution. La telnet
échouera si ce port n'est pas utilisé.
Je vous suggère d'essayer ce qui suit, car l'ordre des paramètres pourrait être important (j'ajouterai des preuves officielles à ce sujet plus tard):
Java "agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005" -jar Server.jar
Cette commande a fonctionné pour moi:
Java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar Server.jar
cette commande a fonctionné pour moi:
export Java_OPTS='-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=0.0.0.0:5505'
par défaut, l'idée de dialogue à distance suggère:
'agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005'
changez le en:
'agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=0.0.0.0:5005'
et émet le port 5005.
Dans mon cas, c’était parce que, dans les paramètres -> construction, exécution, déploiement -> débogueur, j’avais un serveur intégré fonctionnant sur le même port que celui auquel j’essayais de relier mon débogueur pour une raison quelconque.