Netbeans NoClassDefFoundError

时间:2013-06-05 14:26:55

标签: netbeans

我在尝试运行Netbeans(7.2)时遇到了一个反复出现的错误,上次有了它,我找到了一个可以将所有文件移动到新项目的地方。这可能会奏效,但我的项目规模让人非常麻烦。这是跟踪......

Exception in thread "main" java.lang.NoClassDefFoundError:  X.X.X.X
Caused by: java.lang.ClassNotFoundException: X.X.X.X
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
    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: X.X.X.X Program will exit.

它肯定存在,10分钟前很好,我还没碰过它。

我很确定它与netbeans的自动编译(可能还有代码完成功能)有关。有没有办法可以重置所有内部数据,而无需将所有内容移动到新项目。或任何其他建议。

6 个答案:

答案 0 :(得分:5)

在描述的情况下,它通常可以帮助我删除Netbeans的整个缓存 如此亲密的Netbeans 使用netbeans缓存找到目录并删除其内容 它通常位于[USER_HOME]\.netbeans\7.x\var - 删除var目录中的所有内容。

答案 1 :(得分:5)

有一种单一且简单的方法可以做到这一点。让你的编译器再次编译该程序。意味着只需更改一些代码,例如Put somecode或在中间打印一些东西并再次保存。

清洁和建造项目。那会发生

右键单击项目 - >清洁和建设。

再次运行该程序。

我们去享受吧。那将会解决。

总之,您需要进行一些更改,以便编译器需要再次编译该程序。这样就会导致错误。

并且它没有编码错误我认为问题出在IDE上。

答案 2 :(得分:3)

在Windows 10 NetBeans 8.1上,关闭NetBeans,删除Cache目录并重新启动为我解决了这个问题:

缓存位于:

C:\用户\ [用户名] \应用程序数据\本地\的NetBeans \缓存\ 8.1

注意:我还可以关闭项目属性,构建,编译," Save on Compile"并且程序将继续正常运行。

答案 3 :(得分:1)

如果禁用“在保存时编译”,有时也会有帮助。

  • 转到(项目)属性 - >编译 - >编译保存

(使用Netbeans 8.1测试,根据@Ondrej Bozek的建议清除缓存时没有解决问题)。

运行程序后,您可以再次启用“保存时编译”。

答案 4 :(得分:0)

这是随机发生的,我通过重命名抛出错误的类来修复它,然后重新命名。

答案 5 :(得分:0)

如果您有某种疯狂的“找不到类”错误,您知道这是伪造的,因为您没有对类名称或位置做任何事情,并且该项目在十分钟前运行良好,并且该错误是在一些无害的情况下发生的在一个类文件中进行更改,然后,是, 关闭NetBeans ,并 删除Cache文件夹 。这样做绝对安全。

高速缓存(Netbeans 8.2,Windows 10)位于下面的路径中。注意:只要UserName是有效的环境变量名称,键入完全以下内容对任何人都适用。

C:\Users\%UserName%\AppData\Local\NetBeans\Cache

P.S。 如果UserName的定义不正确,则会出现错误。因此,然后Run cmd并键入UserName=,然后键入您的C:\Users文件夹名称。假设它是Dov。这样做:

C:...> set UserName=DOV {这将我的用户名设置为“ DOV”}

C:...> set UserName {这只是询问UserName是什么)

USERNAME=DOV {这是说,“嘿,您的UserName是“ DOV”}}

P.P.S。 如果不确定UserName,请发出以下命令:

C:...> set UserProfile

USERPROFILE=C:\Users\Dov

您的Username是列出的最后一个文件夹名称,即“ Dov”。

P.P.P.S。您可能已经注意到cAsE无关紧要。