2010-09-08 2 views
6

У меня есть исполняемая банка с исходным компилятором, и я хочу ее отладить с помощью jdb (к сожалению, в этой среде нет другого отладчика).Используйте банку с источником в качестве источника для jdb?

Я отладить его с

jdb -classpath "${JAR_FILE}:${CLASS_PATH}" ${MAIN_CLASS} ${ARGS} 

Как я могу получить JDB использовать источник, который встроен в файл банку?

Примечания: Java 6, AIX, КШ

ответ

5

Это не может быть возможным, как указано в this (very old) post на форумах.

+5

Ницца. Исходный код для jdb явно игнорирует записи * .jar и * .zip для 'sourcepath'. – kschneid

+0

@kschneid, Спасибо, что посмотрели. Придерживайтесь, нам нужно больше, как и вы. –

+0

@kschneid Теперь, когда Oracle заняла Sun, мне трудно найти ссылку на исходный код jdb :-(, но я возьму вас на ваше слово. Lame. –

0

не пробовал это лично, но, возможно, вариант sourcepath позволит JAR-файлы: jdb -sourcepath ${JAR_FILE} ...

7

Если jdb игнорирует записи * .jar и * .zip для sourcepath, возможно, вы можете взломать пакетный файл, чтобы развернуть источник из целевой банки в каталог temp и указать точку sourcepath.

Что-то вроде этого

MYDEBUGDIR=/temp/source/mydebug 
jar -xf target.jar -C $MYDEBUGDIR 
jdb -sourcepath ${MYDEBUGDIR} -classpath "${JAR_FILE}:${CLASS_PATH}" ${MAIN_CLASS} ${ARGS} 
rmdir -r $MYDEBUGDIR 

Таким образом, источник отладки находится в синхронизации с банкой и убирает за собой.

Смежные вопросы