Eclipse: как отладить программу на Java в виде файла.jar?

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

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

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

4 ответа

Решение

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

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

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

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

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

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

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

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

Я только что нашел следующую ссылку, которая описывает всю процедуру для удаленной отладки 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 как клиент

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

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

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

Другие вопросы по тегам