Eclipse: как отладить программу Java в виде файла .jar? - PullRequest
31 голосов
/ 14 ноября 2009

Я использую ant для создания файлов .jar в Eclipse. Прекрасно работает.

У меня есть файл .jar, над которым я работаю, который ожидает, что код находится в файле .jar (он ищет файлы .properties в том же каталоге, что и файл .jar) - стандартное Eclipse «Run» и Меню «Отладка» выполняет метод main() указанного класса Java ... но они делают это из каталога, содержащего файлы скомпилированного класса, а не из файла JAR. Есть ли способ изменить это поведение, чтобы Eclipse вместо этого запускал код из соответствующего файла .jar?

(Мой обходной путь сейчас заключается в том, чтобы запускать файл .jar извне, с его приостановкой в ​​ожидании отладчика, согласно ответу Дейва Рэя на один из моих других вопросов .)

Ответы [ 4 ]

60 голосов
/ 09 июня 2011

Вы можете использовать удаленную отладку, запустив свой jar как этот

java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 -jar yourJar.jar

И затем подключение от вашей IDE к этому порту

30 голосов
/ 14 ноября 2009

Да, вы можете создать пользовательский "Run Configuration":
То есть "Java Application", с:

  • Classpath Вкладка очищается от содержимого по умолчанию (каталог .class) и с добавленным jar
  • Source вкладка с содержимым по умолчанию (должна ссылаться на каталог src проекта)

Одна такая конфигурация может быть запущена или отлажена.

http://www.kermeta.org/docs/html.chunked/KerMeta-UI-UserGuide/KerMeta-UI-UserGuide_figures/KerMeta_RunCommandLine_classpath.png

( Пример пользовательской конфигурации с банками в качестве пользовательских записей )

5 голосов
/ 12 сентября 2017

Я только что нашел следующую ссылку, которая описывает всю процедуру для удаленной отладки Java-фляги.

Удаленная отладка приложений Java с помощью Eclipse

Основные части:

Целевая виртуальная машина действует как сервер отладки

java -Xdebug -Xrunjdwp: transport = dt_socket, server = y, address = "8000" -jar test.jar

Целевая виртуальная машина действует как клиент отладки

java -Xdebug -Xrunjdwp: transport = dt_socket, address = 127.0.0.1: 8000, suspend = y -jar test.jar

В зависимости от того, как вы запускаете целевой vm, клиент или сервер, вы должны настроить Eclipse по-разному.

Настройка Eclipse, если вы запускаете целевой vm в качестве клиента

enter image description here

Настройка Eclipse, если вы запускаете целевой vm как сервер

enter image description here

В статье также дается осторожное введение в тему.

0 голосов
/ 14 ноября 2009

Я бы попытался сделать код более надежным, настроить расположение файла свойств или просто загрузить его из пути к классам. Затем вы можете просто добавить файл свойств в путь к классу eclipse. Проблема соведла!

...