当我运行项目时,Java .class 文件就消失了

标签 java netbeans noclassdeffounderror .class-file

我一直在做一个项目,我构建了具有多人游戏功能的俄罗斯方 block ,并且它已经工作了几天没有问题,但现在突然出现了这个异常:

Exception in thread "main" java.lang.NoClassDefFoundError: Game/Piece

这基本上意味着它找不到我名为 Piece 的类的 .class,但每当我执行“清理并构建”时,.class 文件就会出现,然后在我运行项目时立即消失。

这是我的项目结构(在 netbeans 中使用 JDK 16 运行):

enter image description here

此异常有原因吗?

我的JAVA_HOME变量:jdk1.8.0_131

最佳答案

虽然这可能是由于编译时和运行时之间的类路径不匹配造成的,但这不一定是真的。

在这种情况下,在我们的脑海中记住两个或三个不同的异常非常重要:

java.lang.ClassNotFoundException 此异常表示在类路径中未找到该类。这表明我们正在尝试加载类定义,但该类在类路径中不存在。

java.lang.NoClassDefFoundError 此异常表明 JVM 在其内部类定义数据结构中查找类的定义,但没有找到。这与无法从类路径加载它不同。通常这表明我们之前尝试从类路径加载一个类,但由于某种原因失败了 - 现在我们尝试再次使用该类(因此需要加载它,因为上次失败了),但是我们'我们甚至不会尝试加载它,因为我们之前加载失败(并且有理由怀疑我们会再次失败)。早期的失败可能是 ClassNotFoundException 或 ExceptionInInitializerError (指示静态初始化 block 中的失败)或任何其他问题。重点是,NoClassDefFoundError 不一定是类路径问题。

And this question has been asked before.

关于当我运行项目时,Java .class 文件就消失了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69645692/

相关文章:

android - XML 代码错误?

java - 在 Tomcat 上访问 GraphicsEnvironment.getLocalGraphicsEnvironment 时出现 NoClassDefFoundError

java - ServiceLoader + EJB注入(inject)

java - 带有泛型的静态工厂方法

java - 如何获取 Eclipse 的 android studio 项目库?

java - 创建动态 jasper 报告时出现 NoClassDefFoundError

java - 警告 RESTEASY002145 : NoClassDefFoundError

java - 简单的 Java 程序越来越消耗内存

netbeans - 如何在 Netbeans Maven Web 项目中分析 Jetty 应用程序?

java - setFont()导致JFrame加载太慢,java