当前位置:  开发笔记 > 编程语言 > 正文

如何在调试时处理ClassNotLoadedException?

如何解决《如何在调试时处理ClassNotLoadedException?》经验,为你挑选了1个好方法。

所以我(远程)调试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.

......有谁知道那是什么意思?



1> Yishai..:

基本上它意味着类加载器没有加载GridSquare []类.据说这听起来像是调试器中的一个错误.断点与代码的关联似乎有点破碎.您需要重新编译以使行号同步或其他问题正在进行中.在代码中的那一点(在赋值之后),它需要被加载.除非getSquares实际返回一个子类(GridSquareSubclass []),否则JVM可能没有加载它,因为它还不需要它(尚未).


您可以在代码中加载类以强制它发生(比如有一行显式加载类,比如之前创建一个新类型的行).您还可以尝试通过调试器中的evaluate表达式发送指令.(像Class.forName()或Array.newInstance())
`Class.forName()`为我工作.
推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有