Ich habe eine Java-Anwendung auf Linux-Computer ausgeführt. Ich führe die Java-Anwendung folgendermaßen aus:
java myapp -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=4000, suspend=n
Ich habe Port 4000 für TCP auf diesem Linux-Computer geöffnet. Ich verwende Eclipse von einem Windows XP-Computer und versuche, eine Verbindung zu dieser Anwendung herzustellen. Ich habe den Port auch in Windows geöffnet.
Beide Computer befinden sich im LAN, aber ich kann den Debugger anscheinend nicht mit der Java-Anwendung verbinden. Was mache ich falsch?
java
debugging
remote-debugging
dzidzitop
quelle
quelle
Antworten:
Bearbeiten: Mir ist aufgefallen, dass einige Leute den Aufruf hier ausschneiden und einfügen. Die Antwort, die ich ursprünglich gab, war nur für das OP relevant. Hier ist ein moderner Aufrufstil (einschließlich der Verwendung des konventionelleren Ports 8000):
Die ursprüngliche Antwort folgt.
Versuche dies:
Zwei Punkte hier:
runjdwp
Option.quelle
-agentlib
Option für Ihr Ausschneiden und Einfügen zu verwenden. :-)Für JDK 1.3 oder früher:
Für JDK 1.4
Für neuere JDK:
Bitte ändern Sie die Portnummer entsprechend Ihren Anforderungen.
Von Java-Technotes
Noch etwas zu beachten Dokumentation der JVM Tool-Benutzeroberfläche :
quelle
Schritte:
Ausführliche Informationen finden Sie in der Schritt-für-Schritt-Anleitung zum Java-Remote-Debugging .
quelle
Antwort zu Java> = 9:
Für Java 9+ muss die JVM-Option geringfügig geändert werden, indem der Adresse die IP-Adresse des Computers vorangestellt wird, auf dem sich die JVM befindet, oder einfach
*
:Dies ist auf eine Änderung zurückzuführen, die unter https://www.oracle.com/technetwork/java/javase/9-notes-3745703.html#JDK-8041435 vermerkt ist .
Für Java <9 reicht die Portnummer aus, um eine Verbindung herzustellen.
quelle
Ich möchte betonen, dass die Reihenfolge der Argumente wichtig ist .
Für mich öffnet der
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000 -jar app.jar
Befehl den Debugger-Port ,aber
java -jar app.jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000
Befehl nicht .quelle
So sollten Sie den Eclipse-Debugger für das Remote-Debugging einrichten:
Eclipse-Einstellungen:
1.Klicken Sie auf die Schaltfläche Ausführen.
2.Wählen Sie die Debug-Konfigurationen.
3.Wählen Sie die „Remote-Java-Anwendung“.
4.Neue Konfiguration
Für JBoss:
1.Ändern Sie das
/path/toJboss/jboss-eap-6.1/bin/standalone.conf
in Ihrem VM wie folgt: Kommentieren Sie die folgende Zeile aus, indem Sie das # entfernen:Für Tomcat:
In der Datei catalogina.bat :
Schritt 1:
Schritt 2:
Schritt 3: Führen Sie Tomcat an der Eingabeaufforderung wie folgt aus:
Dann müssen Sie Haltepunkte in den Java-Klassen festlegen, die Sie debuggen möchten.
quelle
JAVA_TOOL_OPTIONS=-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n
ps Entschuldigung für die Änderungen, Kampf mit dem Formatierer.