每天都来自每个班级的java.lang.NoClassDefFoundError

时间:2011-06-08 20:40:27

标签: java netbeans

我尝试重新安装netbeans,我尝试重新安装java。我不确定发生了什么,但我从每个类中随机获得此异常,直到我重新启动netbeans。有类似问题的人吗?

运行:

Exception in thread "main" java.lang.NoClassDefFoundError: com/company/utilities/formatters/DateFinder
    at com.protocase.db.DatabaseAdapter.<init>(DatabaseAdapter.java:44)
    at packagingqueries.PackagingQueries.getBatchIDsForOperation(PackagingQueries.java:42)
    at packagingqueries.PackagingQueries.main(PackagingQueries.java:20)
Caused by: java.lang.ClassNotFoundException: com.protocase.utilities.formatters.DateFinder
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    at java.security.AccessController.doPrivileged(Native Method)

10 个答案:

答案 0 :(得分:36)

有时,NetBeans本地缓存目录已损坏(因为应用程序先前崩溃或因为发生了其他/未定义的事件)。 NetBeans开始表现得很奇怪。重新安装没有帮助,因为并不总是删除本地缓存目录。

如果您100%确定您的应用程序没有路径问题:

  1. 关闭NetBeans
  2. 如果你在Windows上,请转到c:\ Users \ youruserid \ .netbeans \ 7.0(否则找到系统上的相应目录)
  3. 完全删除内容
  4. 重新启动NetBeans
  5. NetBeans将重新创建此目录的内容。这个可以解决您的问题。如果没有,那么您的问题在于您的应用程序的配置或肯定在损坏的库中。

    如果存储这些文件的位置空间不足以进行写入,则可能会出现此问题。像往常一样,人们需要腾出空间......

答案 1 :(得分:27)

您可能正在使用“保存时编译”选项运行项目。请取消选中此选项。

我知道这个选项非常有用,但“编译保存”会导致此类问题。

答案 2 :(得分:5)

这通常是CLASSPATH问题。尝试重置CLASSPATH,和/或确保所有第三方JAR实际存在于正确的位置。在极少数情况下,当JVM因版本不兼容而加载第三方jar时出现问题,您将遇到此问题。你能发布你的CLASSPATH设置吗?

答案 3 :(得分:3)

@dah:据我所知,您的代码部署在netbeans中,将JDK配置为一个简单的Java应用程序。运行应用程序时,遇到了NoClassDefFoundError问题?这是正确的理解吗? NoClassDefFoundError可能是由于以下任何问题: - i)上课真的不存在。 sol:明显的解决方案。 ii)类存在但仍然错误。 Sol:检查它是否存在于classpath中。 classloader visibilty在这里很重要。 iii)类存在并存在于类路径中但仍然存在错误。 Sol:如果你在jar中有类,那么可能是因为使用不同版本的java生成了jar而不是你使用的jar。所以你需要重新编译jar然后更换新的jar。 检查一下: - http://code.google.com/p/versioncheck/

答案 4 :(得分:3)

我遇到了同样的问题Class not Found错误,在阅读了一些评论后发现netbeans将丢失对库中添加的jar文件的引用。删除jar并将它们再次添加到库中将重新创建引用。

答案 5 :(得分:2)

我遇到类似的问题,导致NoClassDefFoundError导致ClassNotFoundException

在我的情况下,我已将依赖项复制到包含行

的pom.xml中
<scope>provided</scope>

似乎netbeans / maven将jar加载到Netbeans中进行开发和编译,但是因为我说它是“提供”而将其从可执行jar中删除。

当我从pom.xml 删除这一行时,错误就消失了。

答案 6 :(得分:2)

一个非常简单的方法是修改你的代码一些意味着一些小的改变和清洁再做一次构建。意味着任何如何让编译器强制再次编译您的程序表单,以及它将如何运行。

尝试这会有所帮助。

答案 7 :(得分:2)

对我来说,这个问题发生在NetBeans说&#34;低内存&#34;之后。我尝试了其他解决方案,重新启动,重新启动,删除上面的各种目录,但无济于事。

无论出于何种原因,它都可以从/ build中删除Classes目录,然后执行Clean / Build。不知道为什么会起作用,因为我认为dir在&#34; Clean&#34;无论如何......也许删除它会以建设性的方式混淆NetBeans(?)

答案 8 :(得分:1)

我正在运行Netbeans 6.9.1并且每隔一段时间它就会混淆并开始说它找不到一些引用。我在两台不同配置的Windows机器上运行它,它们都出现在两台机器上。大多数情况下它涉及.jar文件。我能够提出的唯一解决方案是重启Netbeans。

答案 9 :(得分:0)

我使用了JVerstry发布的解决方案。我在为我工作:

ubuntu studio with netbeans 8.0.2

在安装jax-rpc插件以创建Web服务客户端后出现问题。

希望这会有所帮助。