Я знаю, что есть некоторые JAVA_OPTS
для удаленной отладки Java-программы.
Что они и что они значат?
У меня есть эта статья в закладке на настройку для 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
*:1044
чтобы включить удаленную отладку с любого компьютераДо Java 5.0 используйте
-Xdebug
и-Xrunjdwp
аргументы. Эти параметры будут работать в более поздних версиях, но будут работать в интерпретируемом режиме вместо JIT, что будет медленнее.Начиная с Java 5.0, лучше использовать
-agentlib:jdwp
единственный параметр:Опции
-Xrunjdwp
илиagentlib:jdwp
аргументы:transport=dt_socket
: означает способ, используемый для подключения к JVM (сокет является хорошим выбором, его можно использовать для отладки удаленного компьютера)address=8000
: Открыт порт TCP / IP для подключения от отладчика,suspend=y
: если '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
Для удаленной отладки нужно запустить программу с
*:
адресом:источник
Для Java 1.5 или выше:
Для Java 1.4:
Для Java 1.3:
Вот вывод из простой программы:
источник
Ява
address
указывает порт, на котором он позволит отлаживатьспециалист
** Отладка приложения Spring Boot с Maven:
источник
Вот самое простое решение.
Существует много специальных конфигураций среды, необходимых для использования Maven. Итак, если вы запускаете свою программу из maven, просто запустите
mvnDebug
команду вместоmvn
, она позаботится о запуске вашего приложения с настроенной удаленной отладкой. Теперь вы можете просто подключить отладчик к порту 8000.Он позаботится обо всех проблемах окружающей среды для вас.
источник
Командная строка
Gradle
специалист
источник
Здесь мы просто используем Socket Attaching Connector, который включен по умолчанию, когда настроен транспорт dt_socket и виртуальная машина работает в режиме отладки сервера.
Для более подробной информации вы можете обратиться к: https://stackify.com/java-remote-debugging/
источник