Отладка Java-проектов, в которых файл .jar содержит метод main - PullRequest
1 голос
/ 24 ноября 2010

Для упражнения в классе на деревьях игры я должен написать код, который работает с файлом .jar .Я не использовал Java таким образом раньше.Дерево моего проекта Eclipse выглядит следующим образом:

Project tree

Чтобы запустить код, мне сказали сделать это в командной строке:

java -jar VierOpEenRij.jar Mens spel.speler.Random 5 5

Как мне отладить этот код?Я попытался поработать с конфигурациями отладки Eclipse, а также попытался выполнить jdb -jar VierOpEenRij.jar Mens spel.speler.Random 5 5, но я не могу найти способ запустить отладчик.

Как отладить мой код при .jar файл содержит основной метод?

Ответы [ 3 ]

2 голосов
/ 25 ноября 2010

Я не уверен насчет отладки с помощью jdb, но если вы отлаживаете в Eclipse, не имеет значения, какой будет финальная упаковка (например, jar). Если вы настроите отладку для класса Random (класс с методом main?), То вы будете отлаживать свою программу очень хорошо.

1 голос
/ 24 ноября 2010

Я мог бы быть полностью выключен, поскольку я действительно не был в этой ситуации, но не щелкнул бы правой кнопкой мыши на jar -> debug as ... -> Java-приложение добилось цели?

РЕДАКТИРОВАТЬ:

удалось заставить его работать следующим образом:

  • нужен "полу" запускаемый jar (похоже, ваш случай: основной класс там, но отсутствуют зависимости, и манифестдолжен указывать основной класс)
  • добавить основной путь к пути buidl (в представлении проводника пакетов щелкните правой кнопкой мыши на jar -> build-path -> add to build path).
  • впакетный путь просмотра узла сборки, откройте jar-файл до тех пор, пока вы не перейдете к основному методу, щелкните правой кнопкой мыши и запустите или отладьте как приложение java.

По какой-то причине я ожидал, что смогущелкните по банке и сделайте непосредственно dbug как приложение java, хотя ... главное указано в манифесте, но, похоже, не находит его.Не знаю почему.Но в то же время это работает.

EDIT2: На самом деле, теперь я могу прямо щелкнуть правой кнопкой мыши по банке (или даже по проекту) и выбрать правую основную часть, когда появится диалоговое окно, и это все хорошо.Может быть, я что-то пропустил раньше.В любом случае, все готово.)

На рисунке ниже MainInJar.main () вызывает ClassOutOfJar.somethingOutOfJar (), который печатает что-то на экране.

Main in Jar

0 голосов
/ 26 мая 2015

Вам нужно указать classpath в jdb.

jdb -classpath [jar-файл] [полное имя основного класса] [args]

В вашем случае файл jar будет выглядеть так: VierOpEenRij.jar

Имя основного класса, которое вы можете найти в архиве jar в META-INF / MANIFEST.MF.

...