首页 > 解决方案 > 我一运行项目,Java .class 文件就会消失

问题描述

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

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

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

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

在此处输入图像描述

有这个例外的原因吗?

我的JAVA_HOME变量:jdk1.8.0_131

标签: javanetbeansnoclassdeffounderror.class-file

解决方案


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

在这种情况下,将两个或三个不同的例外直接放在我们的脑海中是很重要的:

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

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

而这个问题以前也有人问过。


推荐阅读