java - 我一运行项目,Java .class 文件就会消失
问题描述
我一直在一个项目中构建具有多人游戏的俄罗斯方块,并且它已经工作了几天没有问题,但现在突然出现了这个异常:
Exception in thread "main" java.lang.NoClassDefFoundError: Game/Piece
这基本上意味着它找不到我的名为 Piece 的类的 .class,但是每当我执行“清理和构建”时,.class 文件就会出现,然后在我运行项目时立即消失。
这是我的项目结构(在 netbeans 中使用 JDK 16 运行):
有这个例外的原因吗?
我的JAVA_HOME
变量:jdk1.8.0_131。
解决方案
虽然这可能是由于编译时和运行时之间的类路径不匹配,但这不一定是真的。
在这种情况下,将两个或三个不同的例外直接放在我们的脑海中是很重要的:
java.lang.ClassNotFoundException此异常表示在类路径中找不到该类。这表明我们正在尝试加载类定义,并且类路径中不存在该类。
java.lang.NoClassDefFoundError此异常表明 JVM 在其内部类定义数据结构中查找类的定义,但没有找到。这与说它无法从类路径加载不同。通常这表明我们之前尝试从类路径加载一个类,但由于某种原因它失败了 - 现在我们试图再次使用该类(因此需要加载它,因为它上次失败了),但是我们'甚至不会尝试加载它,因为我们之前未能加载它(并且有理由怀疑我们会再次失败)。较早的失败可能是 ClassNotFoundException 或 ExceptionInInitializerError(指示静态初始化块中的失败)或任何数量的其他问题。关键是,NoClassDefFoundError 不一定是类路径问题。
推荐阅读
- php - 发送包含与收件人相关内容的 laravel 邮件
- sql - 最常用的日期查询
- javascript - 带有 CLICK 事件侦听器的 Javascript API FETCH:TypeError:尝试获取资源时出现 NetworkError
- datepicker - jQuery Datepicker - 如何设置:datepicker1 + 1 天变为 minDate datepicker2 并可选择关闭周六和周日
- python - 尽管为给定列提供“非空”条件,但我似乎可以在表中输入空值
- android - 找不到符号导入 io.flutter.FlutterInjector
- php - 在 postgresql 中存储在数据类型为 double 的列中时,减法结果不准确
- string - 将格式错误的字符串转换为 Scala 类
- r - 如何在使用 MICE 进行多重插补后进行描述性统计(中位数、IQR、频率、比例等)
- python - 如何按位置搜索 Instagram 帖子