7

我通过 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

为什么它看不到类?这可能是什么原因?我该如何解决这个问题?

4

2 回答 2

10

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

从命令行运行时:

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

java -cp C:\MyProject\classes coloredtrails.CTListener

编辑- 查看堆栈跟踪并URLClassLoader在那里看到让我认为您正在尝试运行 Java 小程序。要了解如何正确部署小程序,以便可以找到小程序所需的所有类,请参阅本教程:部署小程序

于 2011-05-25T12:19:28.667 回答
6

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

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

要修复它,请从构建路径中删除源文件夹(=右键单击包资源管理器中项目下的 src 文件夹,然后选择“Build-path->Remove from Build-path”。然后,再次添加它(=右键单击包资源管理器中项目下的文件夹并选择“添加到构建路径”)。这使得 src 文件夹对编译器再次“可见”并修复了问题。

于 2012-09-11T15:59:15.097 回答