web-dev-qa-db-fra.com

Impossible d'ouvrir le port du débogueur via IntelliJ

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:
 enter image description here

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.

7
Leonardo

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
9
Ashutosh Jindal

Cette commande a fonctionné pour moi:

Java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar Server.jar 
2

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.

1
suifengpiao14

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.

0
jacob