Quindi eseguo (remotamente) il debug di un'applicazione java/jboss in Eclipse, passando da una riga all'altra. Ad un certo punto, un array di oggetti GridSquare
(GridSquare
è abbastanza semplice classe, standalone, contiene alcune proprietà e metodi) viene creato da una chiamata metodo, vale a dire:Come faccio a gestire ClassNotLoadedException durante il debug?
GridSquare[] squares = this.theGrid.getSquares(14, 18, 220, 222);
... Mentre quando in realtà eseguire il codice, l'array squares
viene popolato con oggetti GridSquare
, ottengo qualcosa di strano quando si passa attraverso il codice e il debug. A un punto di interruzione sulla linea immediatamente dopo l'assegnazione mostrato sopra, se provo a visualizzare la matrice squares
, invece di un valore ottengo questo:
org.eclipse.debug.core.DebugException: com.sun.jdi.ClassNotLoadedException: Type has not been loaded occurred while retrieving component type of array.
... qualcuno sa di che si tratta?
C'è qualche modo per forzare la JVM per caricare una classe in un particolare momento? Qualcosa di simile a una direttiva del compilatore? – DanM
Puoi caricare la classe nel tuo codice solo per forzarlo a succedere (come avere una linea che carica esplicitamente la classe come la creazione di una nuova matrice del tipo la linea precedente). Si potrebbe anche provare a inviare una direttiva tramite valutare l'espressione nel debugger. (Come un Class.forName() o Array.newInstance()) – Yishai
Questo l'ha fatto. Grazie!! – DanM