Odpowiedzi:
Mam ten artykuł zakładką na ustawienie to dla Java 5 i poniżej.
Zasadniczo uruchom go z :
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044
W przypadku języka Java 5 i nowszych uruchom go z:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=1044
Przed wersją Java 5.0 użyj -Xdebug
i-Xrunjdwp
argumenty. Te opcje będą nadal działać w późniejszych wersjach, ale będą działać w trybie interpretowanym zamiast JIT, który będzie wolniejszy.
W Javie 5.0 lepiej jest użyć -agentlib:jdwp
jednej opcji:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=1044
Dostępne opcje -Xrunjdwp
lub agentlib:jdwp
argumenty to:
transport=dt_socket
: oznacza sposób połączenia z JVM (gniazdo jest dobrym wyborem, można go użyć do debugowania odległego komputera)address=8000
: Port TCP / IP jest otwarty, aby połączyć się z debuggera, suspend=y
: jeśli „y”, powiedz JVM, aby poczekał, aż debuger zostanie podłączony, aby rozpocząć wykonywanie, w przeciwnym razie (jeśli „n”) rozpocznie wykonywanie natychmiast.Xrunjdwp
przestarzałe (czy usunięte?), Dlaczego mielibyśmy to zmienić agentlib:jdwp
?
-Xdebug -Xrunjdwp
podczas debugowania projektów Maven i działają one tak, jakby były JITed.
Ponieważ Java 9.0 JDWP domyślnie obsługuje tylko połączenia lokalne. http://www.oracle.com/technetwork/java/javase/9-notes-3745703.html#JDK-8041435
W celu zdalnego debugowania należy uruchomić program z *:
adresem:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8000
W przypadku wersji Java 1.5 lub nowszej:
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 <YourAppName>
W przypadku java 1.4:
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 <YourAppName>
W przypadku java 1.3:
java -Xnoagent -Djava.compiler=NONE -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 <YourAppName>
Oto dane wyjściowe z prostego programu:
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
określa port, przy którym pozwoli na debugowanie
** Aplikacja Debugowanie Spring Boot z Maven:
mvn spring-boot:run -Drun.jvmArguments=**"-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8001"
Oto najprostsze rozwiązanie.
Jeśli korzystasz z Maven, potrzebujesz wielu specjalnych konfiguracji środowiska. Jeśli więc uruchomisz program z maven, po prostu uruchom mvnDebug
polecenie zamiastmvn
, zajmie się uruchomieniem aplikacji ze skonfigurowanym zdalnym debugowaniem. Teraz możesz po prostu podłączyć debuger do portu 8000.
Zajmie się wszystkimi problemami środowiska.
-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=PORT_NUMBER
Tutaj używamy tylko Socket Attaching Connector, który jest domyślnie włączony, gdy skonfigurowany jest transport dt_socket, a maszyna wirtualna działa w trybie debugowania serwera.
Więcej informacji można znaleźć na stronie : https://stackify.com/java-remote-debugging/
*:1044
aby umożliwić zdalne debugowanie z dowolnego komputera