2010-09-08 16 views
6

Ho un jar eseguibile con il sorgente compilato e voglio eseguire il debug usando jdb (nessun altro debugger disponibile in questo ambiente purtroppo).Utilizzare un jar con origine come origine per jdb?

sono in grado di eseguire il debug con

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

Come posso ottenere JDB per utilizzare la fonte che è incorporato nel file jar?

Note: Java 6, AIX, ksh

risposta

5

Non può essere possibile, come indicato nel this (very old) post sui forum.

+5

Bello. Il codice sorgente per jdb sembra ignorare esplicitamente le voci * .jar e * .zip per 'sourcepath'. – kschneid

+0

@kschneid, grazie per il controllo. Rimanere in giro, abbiamo bisogno di più come te. –

+0

@kschneid Ora che Oracle ha preso il controllo di Sun, ho difficoltà a localizzare un link per il codice sorgente jdb :-(, ma ti prenderò in parola. Lame. –

0

non ho provato personalmente, ma forse l'opzione sourcepath consentirà file JAR: jdb -sourcepath ${JAR_FILE} ...

7

Se jdb ignora le voci * .jar e * .zip per sourcepath, è possibile creare un file batch per espandere l'origine dal contenitore di destinazione in una directory temporanea e puntare a sourcepath.

Qualcosa di simile

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

In questo modo la fonte di debug è in sincronia con il vaso e pulisce dopo se stessa.

Problemi correlati