NoClassDefFoundError但是类存在

时间:2011-06-03 06:41:23

标签: java noclassdeffounderror netbeans-7

这是错误:


Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: sfclocator/UpdateNameForm
    at sfclocator.SFCViewer.(SFCViewer.java:68)
    at sfclocator.SFCViewer$10.run(SFCViewer.java:1823)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: java.lang.ClassNotFoundException: sfclocator.UpdateNameForm
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)

我将此程序创建为Netbeans 7.0项目。我已经工作了大约2-3天,并且昨天完成了。昨天工作得很好。我睡觉了,醒了,今天早上跑了,突然间我出错了。我修复了弹出的错误,除了这个错误。

项目构建完美,JAR甚至运行得很好,但是当我尝试使用Netbeans运行项目时,它给了我这个错误。任何帮助,将不胜感激。


我刚刚发现的更多信息:

构建时,UpdateNameForm类存在于netbeans项目的classes文件夹中,但是当我单击运行时,它删除 UpdateNameForm类。

4 个答案:

答案 0 :(得分:3)

我遇到了类似的问题,我首先从构建路径中删除jar然后再添加它来解决它。重新添加jar后构建项目。有时构建路径不会刷新...我希望这也适用于你。

答案 1 :(得分:0)

这类问题几乎总是由类路径问题引起的。

  • 检查您的类路径设置
  • 检查是否可以在执行环境中找到包含您的类的jar
  • 检查该类是否在您的类路径中较早找到的另一个jar中 - 尤其是jar的早期版本/更高版本(即,如果您已升级但未清除旧罐子)

如果你不知道你的班级在哪个罐子里,我觉得这个网站非常宝贵,可以帮助你找到:http://www.jarfinder.com

答案 2 :(得分:0)

我通过从现有来源创建新的netbeans项目解决了我的问题。在我看来,这不是一个很好的做事方式(特别是在大型项目上),但现有的答案都没有提供解决方案。

答案 3 :(得分:0)

我突然遇到了同样的问题。我在/ build / classes中检查了构建过程的输出,找不到丢失的类。难怪错误消息...我在NetBeans 8.2中解决此问题的方法是右键单击项目以打开“属性”页面。然后转到“生成”下的“编译”,然后取消选中“保存时编译”框。之后,我对有问题的类进行了一些虚拟编辑-输入System.out ...并再次将其删除-并保存。之后,我可以右键单击该类,然后选择“编译文件”。再次检查/ build / classes,我可以看到现在已经构建了类。运行该程序的工作正常,我可以在项目“属性”中重新选中“保存时编译”框。