Wiem, że jest trochę JAVA_OPTS
ustawień do zdalnego debugowania programu Java.
Czym oni są i co mają na myśli?
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
*:1044
aby umożliwić zdalne debugowanie z dowolnego komputeraPrzed 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:Dostępne opcje
-Xrunjdwp
lubagentlib: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.źródło
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:źródło
W przypadku wersji Java 1.5 lub nowszej:
W przypadku java 1.4:
W przypadku java 1.3:
Oto dane wyjściowe z prostego programu:
źródło
Jawa
address
określa port, przy którym pozwoli na debugowanieMaven
** Aplikacja Debugowanie Spring Boot z Maven:
źródło
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.
źródło
Wiersz poleceń
Gradle
Maven
źródło
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/
źródło