为什么线程中出现异常;“主要”;java.lang.NoClassDefFoundError:?

为什么线程中出现异常;“主要”;java.lang.NoClassDefFoundError:?,java,eclipse,classnotfoundexception,Java,Eclipse,Classnotfoundexception,我通过Eclipse运行我的软件。昨天一切都很好。我没有对代码进行更改,但今天,当我再次尝试运行它时,我收到以下错误消息: Exception in thread "main" java.lang.NoClassDefFoundError: coloredtrails/CTListener at test.DemoPlayer1.createAndShowGUI(DemoPlayer1.java:23) at test.DemoPlayer1.main(DemoPlayer1.j

我通过Eclipse运行我的软件。昨天一切都很好。我没有对代码进行更改,但今天,当我再次尝试运行它时,我收到以下错误消息:

Exception in thread "main" java.lang.NoClassDefFoundError: coloredtrails/CTListener
    at test.DemoPlayer1.createAndShowGUI(DemoPlayer1.java:23)
    at test.DemoPlayer1.main(DemoPlayer1.java:39)
Caused by: java.lang.ClassNotFoundException: coloredtrails.CTListener
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 2 more

为什么看不到这个班?原因可能是什么?如何解决此问题?

一个
NoClassDefFoundError
(几乎)总是意味着类路径错误。确保类路径包含
coloredtrails
包的基本目录。(当然,还要确保文件
coloredtrails\CTListener.class
确实存在)

从命令行运行时:

通过设置
classpath
环境变量,或者在运行程序时使用命令行上的
-cp
-classpath
选项指定类路径,可以设置类路径。例如:

java -cp C:\MyProject\classes coloredtrails.CTListener
编辑-查看堆栈跟踪并看到其中的
URLClassLoader
,我认为您正在尝试运行Java小程序。要了解如何正确部署小程序,以便找到小程序所需的所有类,请参阅本教程:。

有时,我的Eclipse(MacOSX上的Indigo)会这样做,特别是如果我直接对系统上的项目结构进行更改(删除文件,移动文件)

基本上,eclipse再也找不到源文件夹了,所以他不编译源代码,而是尝试运行它(所有这些都没有警告或问题的引用)


要修复此问题,请从生成路径中删除源文件夹(=右键单击包资源管理器中项目下的src文件夹,然后选择“生成路径->从生成路径中删除”。然后,再次添加它(=右键单击包资源管理器中项目下的文件夹,然后选择“添加到生成路径”)。这将使src文件夹“可见”请再次访问编译器并解决问题。

您是否尝试过清理-->构建您的项目?@Harry Joy,谢谢您的建议!您“救了我的命”!:)现在它可以工作了。这是如此令人讨厌,以至于它在接近截止日期时停止了工作。现在它工作了!这是为什么不使用eclipse的一个很好的例子……这通常是由于eclipse已知的问题行为,而不是JVM本身。1) 确保在Eclipse的运行/调试配置中的“Main Resource”下使用对象的完全限定包名(x.y.z.MyClass)(2)尝试Eclipse的“Build All”而不是“Build Project”。3) 然后才开始检查类路径、目录等。或者刷新eclipse中的所有文件(项目根文件夹上的快捷方式F5)。我只能通过删除工作区来解决这个问题。我还试图重新添加src文件夹,但没有成功。创建一个新的工作区成功了。我尝试了这个方法和其他许多方法,但都没有成功。删除工作区只对我有效。