0

我刚刚做了一个项目......干净,然后自动没有任何效果。

Exception in thread "main" java.lang.NoClassDefFoundError: adventure/Main
Caused by: java.lang.ClassNotFoundException: adventure.Main
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: adventure.Main. Program will exit.

我可以进行构建,但在 Eclipse 中没有构建的输出,他们认为您不能只右键单击文件并选择编译...

为什么他们让 Eclipse 能够进入这种无法控制的状态?这种状态有什么好处?如果项目的这种状态没有优势,为什么可能呢?

除了尝试构建路径以生成可运行的 JAr 之外,我没有做任何不寻常的事情,这当然失败了,因为 Eclipse 甚至无法正确打包 jar。

该类的代码将无助于在此处显示,因为无论如何都找不到它。

更新

我可以通过执行“新” SVN 结帐然后在项目上工作来重现此错误,一旦我使用“功能”清理然后 Eclipse 会自动破坏我的工作,并且无法继续该项目,因为我是使用 Eclipse 是他们开发了十年的世界上最糟糕的 IDE,而这无法完成像编译这样的基本功能。

4

2 回答 2

1

我必须同意这个问题不太可能是由 Eclipse 引起的评论。无论如何,假设它是:

Eclipse 以这种方式工作是因为它使用自动构建器而不是事后编译。就错误捕获而言,这可能很好,但对于大型项目也可能存在问题。至于为什么不提供简单的手动编译,Eclipse 试图隐藏编译等开发步骤,可能没有考虑可能发生此类错误的情况。

尝试关闭并重新打开自动构建功能:Window > Preferences > General > Workspace > Build automatically

如果这不起作用:备份包含该类的文件,然后将其删除。从备份中恢复。

其中任何一个都应该强制 Eclipse 重新编译所有内容。

如果那仍然不能解决您的问题,那么该错误可能不是来自 Eclipse,它只是在您进行任何清理后都没有机会找到它。值得庆幸的是,通过强制 Eclipse 重新编译,它应该会指出错误。

于 2012-07-20T18:34:09.643 回答
0

也许它不是“理想的”,但在这样的问题中,在 Eclipse 中我停止了:Project clean, and and build automatically

于 2020-10-10T10:47:04.740 回答