Así que estoy depurando (remotamente) una aplicación java/jboss en Eclipse, avanzando línea por línea. En un punto, una matriz de GridSquare
objetos (GridSquare
es una clase bastante simple, independiente, contiene algunas propiedades y métodos) es creado por una llamada de método, es decir:¿Cómo manejo una ClassNotLoadedException durante la depuración?
GridSquare[] squares = this.theGrid.getSquares(14, 18, 220, 222);
... Mientras que cuando En realidad, ejecuto el código, la matriz squares
se llena con objetos GridSquare
, obtengo algo extraño cuando paso por el código y la depuración. En un punto de interrupción en la línea inmediatamente después de la asignación se muestra arriba, si trato de ver la matriz squares
, en lugar de un valor me sale esto:
org.eclipse.debug.core.DebugException: com.sun.jdi.ClassNotLoadedException: Type has not been loaded occurred while retrieving component type of array.
... Alguien sabe de qué se trata?
¿Hay alguna manera de forzar a la JVM a cargar una clase en un momento determinado? ¿Algo similar a una directiva de compilación? – DanM
Puede cargar la clase en su código solo para forzarlo a pasar (como tener una línea que cargue explícitamente la clase, como crear una nueva matriz del tipo la línea anterior). También podría intentar enviar una directiva a través de la expresión de evaluación en el depurador. (Como un Class.forName() o Array.newInstance()) – Yishai
Eso lo hizo. ¡¡Gracias!! – DanM