web-dev-qa-db-de.com

Debugger-Port kann nicht über IntelliJ geöffnet werden

Ich habe einen Server mit DigitalOcean und eine JAR-Datei, die ich debuggen möchte. Ich starte zuerst den JAR auf dem Remote-Server mit

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

aber auf der Konsole sehe ich keine Ausgabe wie "Port 5005 abhören ...".

Wenn ich in IntelliJ Debug drücke, heißt es

debugger-Port kann nicht geöffnet werden (198.xxx.xxx.xx: 5005): Java.net.ConnectException "Verbindung abgelehnt"

Dies ist meine IntelliJ-Konfiguration:
 enter image description here

Ich habe auch versucht, -Xdebug zu verwenden, aber es hat immer noch nicht funktioniert.

Wenn ich suspend=y setze, sollte es warten, bis ein Debugger angeschlossen ist. Stattdessen wird es ohne Probleme gestartet.

7
Leonardo

Der Befehl zum Starten des Remote-Java-Prozesses im Debug-Modus sieht korrekt aus. Wenn beim Starten der Server-JAR "Listening to Port blah" nicht angezeigt wird, kann dies bedeuten, dass die Debug-Argumente nicht erkannt werden. Eine andere Möglichkeit, dies schnell zu überprüfen, wäre ein Test mit einem telnet localhost 5005 auf dem Rechner, auf dem die Server-JAR ausgeführt wird. Die telnet schlägt fehl, wenn dieser Port nicht verwendet wird.

Ich schlage vor, dass Sie Folgendes versuchen, da die Reihenfolge der Parameter von Bedeutung sein kann (ich werde später einige offizielle Beweise hinzufügen):

Java "agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005" -jar Server.jar
9
Ashutosh Jindal

Dieser Befehl hat für mich funktioniert:

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

dieser Befehl hat für mich funktioniert:

export Java_OPTS='-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=0.0.0.0:5505'

standardmäßig schlägt der Remote-Dialog Folgendes vor:

'agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005'

Ändern Sie es in:

'agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=0.0.0.0:5005'

und gibt port 5005 aus.

1
suifengpiao14

In meinem Fall lag es daran, dass unter Einstellungen -> Build, Ausführung, Bereitstellung -> Debugger ein eingebauter Server auf demselben Port ausgeführt wurde, an den ich aus irgendeinem Grund meinen Debugger anhängen wollte.

0
jacob