Відповіді:
Цю статтю я взяв у закладки щодо налаштування цього для Java 5 і нижче.
В основному, запускайте його :
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044
Для Java 5 і вище запустіть її з:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=1044
Перед Java 5.0 використовуйте -Xdebug
та -Xrunjdwp
аргументи. Ці параметри все ще працюватимуть у пізніших версіях, але вони працюватимуть в інтерпретованому режимі замість JIT, що буде повільніше.
З Java 5.0 краще використовувати -agentlib:jdwp
єдиний варіант:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=1044
Варіанти -Xrunjdwp
або agentlib:jdwp
аргументи:
transport=dt_socket
: означає спосіб, який використовується для підключення до JVM (сокет - хороший вибір, його можна використовувати для налагодження віддаленого комп'ютера)address=8000
: Відкритий порт TCP / IP для підключення від налагоджувача, suspend=y
: якщо 'у', скажіть JVM чекати, поки налагоджувач буде приєднаний, щоб розпочати виконання, інакше (якщо 'n'), розпочне виконання відразу.Xrunjdwp
застаріле (чи вилучено?), Чому ми б agentlib:jdwp
його перебирали?
-Xdebug -Xrunjdwp
під час налагодження Maven проектів, і вони працюють так, як вони JITed.
Оскільки Java 9.0 JDWP підтримує лише локальні з'єднання за замовчуванням. http://www.oracle.com/technetwork/java/javase/9-notes-3745703.html#JDK-8041435
Для віддаленої налагодження слід запустити програму з *:
адресою:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8000
Для Java 1,5 або більше:
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 <YourAppName>
Для java 1,4:
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 <YourAppName>
Для java 1,3:
java -Xnoagent -Djava.compiler=NONE -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 <YourAppName>
Ось вихід із простої програми:
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
вказує порт, на якому він дозволить налагоджувати
** Налагодження програми Spring Boot з Maven:
mvn spring-boot:run -Drun.jvmArguments=**"-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8001"
Ось найпростіше рішення.
Якщо ви використовуєте Maven, потрібна велика кількість спеціальних конфігурацій середовища. Отже, якщо ви запускаєте програму з Maven, просто запустіть mvnDebug
команду замість mvn
, вона подбає про запуск програми з налаштованою віддаленою налагодженням. Тепер ви можете просто приєднати налагоджувач на порт 8000.
Він піклується про всі проблеми навколишнього середовища для вас.
-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=PORT_NUMBER
Тут ми просто використовуємо з’єднувач Sota Attaching, який увімкнено за замовчуванням, коли транспорт dt_socket налаштований і VM працює в режимі налагодження сервера.
Більш детальну інформацію можна знайти на: https://stackify.com/java-remote-debugging/
*:1044
увімкнути віддалену налагодження з будь-якого комп’ютера