Jakie opcje wiersza poleceń Javy należy ustawić, aby umożliwić zdalne debugowanie JVM?
Wiem, że jest kilka JAVA_OPTS do zdalnego debugowania programu Java.
Czym są i co oznaczają ?
6 answers
Mam Ten artykuł zakładkę o konfigurowaniu tego z Eclipse dla Java 5 i poniżej.
W zasadzie uruchom go z :
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044
Dla Eclipse z Java 5 i wyżej , uruchom go za pomocą:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=1044
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-17 07:58:17
Przed Javą 5.0 użyj argumentów -Xdebug
i -Xrunjdwp
. Opcje te będą nadal działać w późniejszych wersjach, ale będą działać w trybie interpretowanym zamiast JIT, który będzie wolniejszy.
Od Javy 5.0 lepiej jest użyć jednej opcji -agentlib:jdwp
:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=1044
Opcje na argumentach -Xrunjdwp
lub agentlib:jdwp
to:
- [6]} : oznacza sposób połączenia z JVM (gniazdo jest dobrym wyborem, może być używane do debugowania odległego komputera)
-
address=8000
: port TCP/IP exposed, to połączenie z debuggera, -
suspend=y
: Jeśli 'y', powiedz JVM, aby poczekał, aż dołączony zostanie debugger, aby rozpocząć wykonywanie, w przeciwnym razie (jeśli 'n'), rozpocznie wykonywanie od razu.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-29 13:30:53
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
Do zdalnego debugowania należy uruchomić program z *:
w adresie:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8000
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-23 08:17:04
Dla Javy 1.5 lub nowszej:
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 <YourAppName>
Dla Javy 1.4:
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 <YourAppName>
Dla Javy 1.3:
java -Xnoagent -Djava.compiler=NONE -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 <YourAppName>
Oto wyjście 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
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-28 13:40:52
Istnieje wiele problemów ze środowiskiem, jeśli używasz Mavena. Tak więc, jeśli uruchomisz swój program z Mavena, po prostu uruchom polecenie mvnDebug
zamiast mvn
i podłącz debugger na porcie 8000. To dbasz o wszystkie problemy środowiska.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-20 18:38:49
Java
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, na którym umożliwia debugowanie
Maven
Debug Spring Boot app with Maven: mvn spring-boot: run-Drun.jvmArguments="- Xdebug-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8001"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-02 08:21:23