调试ClassNotFoundException

时间:2010-10-21 20:08:14

标签: java classnotfoundexception

在我的代码中,我有一个包含对象和整数的嵌套类。这是为了标记子列表方法的开始和结束位置。

代码执行到对象和整数已建立值的程度。我在调试器中验证了这一点。

然后下一行调用ListLoc<E> startNode= new ListLoc<E>(start, startElement);,这就是异常的原因。

该类已定义为

 private class ListLoc<E>{
    public Chunk<E> node;
    public int index;

    /* This object is created to hold a chunk and index location.  Two
     * objects will be created for the start and end locations for 
     * creating a sublist
     */
    public ListLoc(Chunk<E> node, int index){
        this.node= node;
        this.index= index;
    }
}

奇怪的是,在用全局变量替换本地startNode之前,这部分代码执行正常。这个想法没有用,所以我把变量改回来了,这个例外就出现了。

我没有对类路径或执行做任何更改。这次出现的唯一时间是在调试器中

编辑:添加了堆栈跟踪

ClassNotFoundException(Throwable)。(String,Throwable)行:217
ClassNotFoundException(Exception)。(String,Throwable)行:不可用 ClassNotFoundException。(String)line:not available
URLClassLoader $ 1.run()行:不可用
AccessController.doPrivileged(PrivilegedExceptionAction,AccessControlContext)行:不可用[本机方法]
Launcher $ ExtClassLoader(URLClassLoader).findClass(String)行:不可用
Launcher $ ExtClassLoader.findClass(String)行:不可用
Launcher $ ExtClassLoader(ClassLoader).loadClass(String,boolean)行:不可用 Launcher $ AppClassLoader(ClassLoader).loadClass(String,boolean)行:不可用 Launcher $ AppClassLoader.loadClass(String,boolean)line:not available
Launcher $ AppClassLoader(ClassLoader).loadClass(String)行:不可用

从我看来,它是触发异常的classLoader。

1 个答案:

答案 0 :(得分:2)

如果您能澄清异常是什么会有所帮助,但是,我猜你正在为E获得ClassNotFound。

看起来你的教授还没有澄清泛型的概念。我建议查看通用数据结构是什么。我给出的建议是寻找为什么没有定义E以及为什么要创建它们的列表。

我认为以下链接可能有助于澄清它们背后的语法和概念: http://download.oracle.com/javase/tutorial/extra/generics/index.html

特别是以下部分:http://download.oracle.com/javase/tutorial/extra/generics/simple.html