Java类未找到异常

时间:2011-08-10 09:54:48

标签: java noclassdeffounderror

我正在尝试运行Java程序并在执行的某个地方,我得到了一个

java.lang.NoClassDefFoundError: antlr/TokenStream

异常。我是java编程的新手,所以不知道这意味着什么。我已经查看了一些关于同样问题的其他问题,他们并没有真正帮助我 - 要么我不能按照答案,要么不适用于我的情况。 有什么想法吗?

5 个答案:

答案 0 :(得分:5)

搜索antlr.jar并将其放入类路径

答案 1 :(得分:2)

当程序引用的特定类在类路径中不可用时,抛出

java.lang.NoClassDefFoundError。 Classpath是运行时搜索正在运行的类中使用的类的路径/目录列表。

您收到的错误消息表示您的类路径中没有antlr/TokenStream

要将相应的jar(antlr.jar)包含在类路径中,您可以在运行时使用-cp标志:

java -cp .;path_to_antlr.jar yourClass

java -cp .;path_to_antlr.jar -jar yourJar.jar

答案 2 :(得分:0)

它正在搜索类的defn,它没有在类路径中找到。

来自JavaDoc's

  

如果Java虚拟机或ClassLoader实例尝试,则抛出该异常   加载类的定义(作为普通方法调用的一部分或   作为使用新表达式创建新实例的一部分)和否   可以找到班级的定义。

答案 3 :(得分:0)

  

如果Java虚拟机或ClassLoader实例尝试,则抛出该异常   加载类的定义(作为普通方法调用的一部分或   作为使用新表达式创建新实例的一部分)和否   可以找到班级的定义。

     

当前正在执行的搜索类定义存在   编译了类,但无法再找到定义。

here获取。

答案 4 :(得分:0)

您已引用java类但由于某种原因,该类在您运行的执行映像中不存在。例如,如果您实例化了一个新类XYZ,如:  XYZ xyz =新的XYZ(),但是没有这样的类你会得到类似于上面的错误。在过去,如果我拼错了对某个类的引用,或者更典型的是,如果我所指的类以某种方式没有包含在我的jar中,我就会收到这种错误。检查jar或执行执行的目录。你看到你在那里参考的课程吗?我打赌它不见了。

埃利奥特