我正在尝试运行Java程序并在执行的某个地方,我得到了一个
java.lang.NoClassDefFoundError: antlr/TokenStream
异常。我是java编程的新手,所以不知道这意味着什么。我已经查看了一些关于同样问题的其他问题,他们并没有真正帮助我 - 要么我不能按照答案,要么不适用于我的情况。 有什么想法吗?
答案 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或执行执行的目录。你看到你在那里参考的课程吗?我打赌它不见了。
埃利奥特