запустить jar в режиме отладки из терминала - PullRequest
0 голосов
/ 23 октября 2018

Я использую Intellij idea IDE и пытаюсь запустить файл jar из терминала в режиме отладки и установить точки останова в нескольких местах кода.

команда, которую я использую:java -jar myTestApp.jar -file "myfile.txt" -users myUser -Xdebug -Xrunjdwp:transport=dt_socket,server=127.0.0.1,suspend=n,address=8080

Проблема в том, что я также использую библиотеку commons-cli, поэтому параметры -Xdebug и -Xrunjdwp не распознаются как параметры, и я получаю: enter image description here Есть идеи, как это исправить?

Ответы [ 3 ]

0 голосов
/ 23 октября 2018

Java ожидает только программные аргументы после указания класса или jar для запуска.Поэтому попробуйте добавить параметры JVM до этого:

java -Xdebug -Xrunjdwp:transport=dt_socket,server=127.0.0.1,suspend=n,address=8080 -jar myTestApp.jar -file "myfile.txt" -users myUser 
0 голосов
/ 03 января 2019

Предположим, что автор вопроса не использует Java 5 в 2018 году:

java -agentlib:jdwp=transport=dt_socket,address=8080,server=y,suspend=n -jar myTestApp.jar -file "myfile.txt -users myUser

Кстати: в случае использования Java 9 и более поздних версий :измените address=8080 на address=*:8080, так как localhost больше не используется по умолчанию.

прекратите указывать людям использовать -Xdebug и -Xrunjdwp

Xdebug использовался в Java 5 и ниже.Начиная с Java 6 доступно -agentlib.Xdebug разрешает доступ к отладчику через Xrunjdwp.JIT теперь запускается в режиме совместимости, если вы используете Xdebug и используете устаревший отладчик, который значительно замедляет вашу отладку.Затем люди говорят, что нужно использовать -Djava.compiler=NONE, чтобы отключить режим совместимости, или добавить -Xnoagent, чтобы отключить устаревший отладчик.Не делайте этого, используйте -agentlib!

0 голосов
/ 23 октября 2018

-Xdebug должен быть перед параметром -jar.Теперь Java считает, что это часть аргументов вашей программы.

...