389 Stimmen

Welche Java-Befehlszeilenoptionen müssen gesetzt werden, damit die JVM aus der Ferne debuggt werden kann?

Ich weiß, es gibt einige JAVA_OPTS zu setzen, um ein Java-Programm aus der Ferne zu debuggen.

Was sind sie und was bedeuten sie?

4voto

Santosh b Punkte 624

Befehlszeile

-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=PORT_NUMBER

Gradle

gradle bootrun --debug-jvm

Maven

mvn spring-boot:run -Drun.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=PORT_NUMBER

2voto

neves Punkte 25455

Hier ist die einfachste Lösung.

Bei der Verwendung von Maven sind eine Reihe von speziellen Umgebungskonfigurationen erforderlich. Wenn Sie also Ihr Programm von Maven aus starten, führen Sie einfach die mvnDebug Befehl anstelle von mvn wird Ihre Anwendung mit konfiguriertem Remote-Debugging gestartet. Jetzt können Sie einfach einen Debugger an Port 8000 anschließen.

Es wird sich für Sie um alle Umweltprobleme kümmern.

1voto

Boney Punkte 940
-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=PORT_NUMBER

Hier verwenden wir einfach einen Socket Attaching Connector, der standardmäßig aktiviert ist, wenn der dt_socket-Transport konfiguriert ist und die VM im Server-Debugging-Modus läuft.

Weitere Einzelheiten finden Sie unter : https://stackify.com/java-remote-debugging/

-1voto

Wenn Sie Java 9 oder höher verwenden, müssen Sie zum Debuggen aus der Ferne (was auch der Fall ist, wenn Sie Docker lokal verwenden) Folgendes angeben --debug *:($port) . Denn ab Java 9 --debug ($port) erlaubt nur die Fehlersuche vor Ort, nicht aus der Ferne .

Sie können also in docker-compose einen Befehl wie command: -- /opt/jboss/wildfly/bin/standalone.sh --debug *:8787

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X