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?
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?
Vor Java 5.0, verwenden Sie -Xdebug
et -Xrunjdwp
Argumente. Diese Optionen werden auch in späteren Versionen noch funktionieren, aber es wird im interpretierten Modus anstelle von JIT laufen, was langsamer sein wird.
Ab Java 5.0 ist es besser, die -agentlib:jdwp
einzige Option:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=1044
Optionen auf -Xrunjdwp
ou agentlib:jdwp
Argumente sind:
transport=dt_socket
Socket: bezeichnet die Art und Weise, wie eine Verbindung zur JVM hergestellt wird (Socket ist eine gute Wahl, da es zur Fehlersuche auf einem entfernten Computer verwendet werden kann)address=8000
: Freigegebener TCP/IP-Port, um vom Debugger aus eine Verbindung herzustellen,suspend=y
Wenn 'y', soll die JVM warten, bis der Debugger angeschlossen ist, um mit der Ausführung zu beginnen, andernfalls (wenn 'n') wird die Ausführung sofort gestartet.Ich habe 本論文 mit Lesezeichen versehen, um dies für Java 5 und darunter einzurichten.
Grundsätzlich führen Sie es mit :
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044
Für Java 5 und höher , führen Sie es mit aus:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=1044
Seit Java 9.0 unterstützt JDWP standardmäßig nur lokale Verbindungen. http://www.oracle.com/technetwork/java/javase/9-notes-3745703.html#JDK-8041435
Für Remote-Debugging sollte man das Programm mit *:
in Adresse:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8000
Für Java 1.5 oder höher:
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 <YourAppName>
Für Java 1.4:
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 <YourAppName>
Für Java 1.3:
java -Xnoagent -Djava.compiler=NONE -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 <YourAppName>
Hier ist die Ausgabe eines einfachen Programms:
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044 HelloWhirled
Listening for transport dt_socket at address: 1044
Hello whirled
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8001,suspend=y -jar target/cxf-boot-simple-0.0.1-SNAPSHOT.jar
address
gibt den Port an, an dem das Debugging erlaubt wird
**Spring Boot Anwendung mit Maven debuggen:
mvn spring-boot:run -Drun.jvmArguments=**"-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8001"
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.