Eclipse: как отлаживать Java-программу как .jar файл?
Я использую ant
для создания файлов .jar в Eclipse. Отлично работает.
У меня есть файл .jar, над которым я работаю, и ожидает, что код будет в файле .jar(он ищет файлы .properties в том же каталоге, что и файл .jar) - стандартный Eclipse "Run" и Меню "Отладка" выполняет метод main()
указанного Java-класса... но они делают это из каталога, содержащего скомпилированные файлы классов, а не файла jar. Есть ли способ изменить это поведение, поэтому Eclipse запускает код из соответствующего .jar файла?
(Моим обходным решением сейчас является запуск файла .jar извне, при этом он приостановлен в ожидании отладчика, за Дэйв Рэй отвечает на один из моих других вопросов. )
Ответы
Ответ 1
Да, вы можете создать пользовательский "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]()
(Пример пользовательской конфигурации с банками в качестве пользовательских записей)
Ответ 2
Вы можете использовать удаленную отладку, запустив свою банку следующим образом
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 -jar yourJar.jar
И затем подключение из вашей IDE к этому порту
Ответ 3
Я только что нашел следующую ссылку, которая описывает всю процедуру, чтобы удаленно отлаживать 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 как сервер
![введите описание изображения здесь]()
В статье также нежно вводится тема.
Ответ 4
Я попытался бы сделать код более надежным, сделав конфигурацию местоположения файла конфигурацией или просто запустив его из пути к классам. Затем вы можете просто добавить файл свойств в путь класса eclipse. Проблема Sovled!