Каковы параметры командной строки Java, позволяющие удаленно отлаживать JVM?

Я знаю, что некоторые JAVA_OPTS для удаленной отладки Java-программы.

Что они и что они значат?

Ответ 1

У меня есть эта статья в закладке на настройку для 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

Ответ 2

Перед 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: if 'y', сообщите JVM, чтобы ждать, пока отладчик не будет присоединен для начала выполнения, иначе (если "n" ) сразу начнет выполнение.

Ответ 3

Начиная с Java 9.0, JDWP по умолчанию поддерживает только локальные соединения. http://www.oracle.com/technetwork/java/javase/9-notes-3745703.html#JDK-8041435

Для удаленной отладки необходимо запустить программу с *: in address:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8000

Ответ 4

Для 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

Ответ 5

Джава

Java -Xdebug -Xrunjdwp: транспорт = dt_socket, сервер = y, адрес = 8001, приостановить = y -jar target/cxf-boot-simple-0.0.1-SNAPSHOT.jar

address указывает порт, на котором он позволит отлаживать

специалист

Отладка приложения Spring Boot с Maven: mvn spring-boot: run -Drun.jvmArguments = "-Xdebug -Xrunjdwp: транспорт = dt_socket, сервер = y, приостановить = y, адрес = 8001"

Ответ 6

Командная строка

-Xdebug -Xrunjdwp: transport = dt_socket, server = y, suspend = n, address = PORT_NUMBER

Gradle

gradle bootrun --debug-jvm

специалист

mvn spring-boot: run -Drun.jvmArguments = "-Xdebug -Xrunjdwp: transport = dt_socket, server = y, suspend = y, address = PORT_NUMBER

Ответ 7

Там много проблем с окружающей средой, если вы используете Maven. Итак, если вы запустите свою программу из maven, просто запустите команду mvnDebug вместо mvn и присоедините отладчик на порт 8000. Это вы заботитесь обо всех проблемах с окружающей средой.