因此,我(远程)在Eclipse中调试Java/jboss应用程序,一步一步地进行。在某一时刻,通过方法调用创建了GridSquare对象数组(GridSquare是一个相当简单的独立类,包含一些属性和方法):
GridSquare[] squares = this.theGrid.getSquares(14, 18, 220, 222);
...当我实际执行代码时,squares数组中确实填充了GridSquare对象,但在逐步执行代码并进行调试时,我感到有些奇怪。在紧接上面显示的赋值的那一行的断点处,如果我尝试查看squares数组,而不是一个值,我会得到:
org.eclipse.debug.core.DebugException: com.sun.jdi.ClassNotLoadedException: Type has not been loaded occurred while retrieving component type of array.
...谁知道这是怎么回事?

最佳答案

基本上,这意味着类加载器尚未加载GridSquare []类。话虽如此,这听起来像是调试器中的一个错误。断点与代码的关联似乎已被破坏。您需要重新编译以使行号同步,或者发生其他问题。此时,在代码中(分配之后)需要将其加载。除非getSquares实际上返回一个子类(GridSquareSubclass []),否则JVM可能尚未加载该子类,因为它不需要(尚未)。

关于java - 调试时如何处理ClassNotLoadedException?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1367730/

10-14 05:47