раздражающее имя пакета jdb во время отладки

Я пытаюсь отлаживать свои приложения с помощью jdb. Я приобрел много вещей до сих пор, но я хотел бы отполировать их.

Когда я нахожусь в jdb и хочу вставить точку останова или проверить переменную, jdb нужно полное имя package.class.(метод/переменная). Вот пример:

Initializing jdb ...
> 
VM Started: No frames on the current call stack

main[1] stop in com.ionsoft.engine.Engine.main

Это так раздражает, потому что имена, которые я должен напечатать, такие длинные.

Я хотел бы ввести «stop in Engine.main», как если бы источник и класс находились в корне проекта.

Я попытался изменить путь к классам с ./build/classes на ./build/classes/com/ionsoft/engine, но если я это сделаю, Engine.class не будет найден.

Error: Could not find or load main class com.ionsoft.engine.Engine

У кого-нибудь есть идеи?

ОБНОВЛЕНИЕ: в моем текущем пути к классам я указываю на банки, а не на классы.

Спасибо за ваше время.


person Ionthas    schedule 10.11.2013    source источник
comment
Может быть, немного не по теме, но почему бы вам не использовать IDE, например Eclipse, Intellij, Netbeans и т. д.?   -  person isnot2bad    schedule 10.11.2013
comment
Я предпочитаю использовать jdb, потому что обычно я работаю в средах без X и считаю, что установка IDE только для отладчика — это излишество.   -  person Ionthas    schedule 10.11.2013
comment
Когда вы говорите, что работаете в средах без X, вы имеете в виду сервер, верно? А как насчет вашего рабочего стола, наверняка у вас там X, или Windows, или Mac OS X? Затем вы можете выполнять удаленную отладку со своего рабочего стола.   -  person Robin Green    schedule 10.11.2013
comment
Я ценю совет по использованию Eclipse/IDE, но раньше я программировал с помощью vim и gdb. Раньше я выполнял отладку с помощью Eclipse или Netbeans, но моя производительность выше при использовании таких отладчиков, поскольку они позволяют мне сосредоточиться только на чем-то одном. (Я полагаю, это старый способ работы).   -  person Ionthas    schedule 10.11.2013
comment
Тогда, я думаю, вам придется жить с этим бременем. Для остановки jdb требуется полное имя класса, и для этого нет обходного пути (fqn нельзя изменить после компиляции).   -  person isnot2bad    schedule 10.11.2013


Ответы (1)


Нашел полезную информацию по этой теме.

У меня есть три варианта:

  1. Используйте файл .jdbrc примерно так:

    monitor list
    stop in com.ionsoft.engine.Engine.main
    

    К сожалению, это обходной путь. Здесь я могу настроить все свои точки останова и пользовательскую конфигурацию.

  2. Используйте интерфейс отладки Java (JDI) для программирования моего пользовательского «отладчика».

    Полезная информация: здесь

  3. Живите с этим бременем. (как сказал isnot2bad)

Думаю, мне больше нравится второй вариант, но пока я буду использовать комбинацию первого и третьего вариантов.

person Ionthas    schedule 11.11.2013