0

我无法理解为什么在运行 jar 文件时会出现此错误:

线程“main”中的异常 java.lang.NoClassDefFoundError: net/sf/mzmine/main/MZ mineModulesList at net.sf.mzmine.main.MZmineCore.main(MZmineCore.java:100) 原因:java.lang.ClassNotFoundException: net.sf.mzmine.main.MZmineModulesList

它说MZmineModulesList找不到该类,但它存在于此路径中。也许我在将类写入 jar 文件时做错了什么?

我想补充一点,这是在我用更新版本替换 MZmineModuleList 文件后出现的。我所做的:我从 Jar 中提取文件并添加了我的新类,并且我将旧的 MZmineModuleList 类替换为新的类,其中添加了几行代码。也许当我使用 java.util.jar 的方法写入 jar 文件时,我错过了什么?

4

3 回答 3

1

如果类的NoClassDefFoundError静态代码块中存在错误,则可能发生。

于 2012-08-06T16:56:00.913 回答
0

类可能是abigious。如果可以从多个类加载器加载一个类,则也可能会引发此错误。

于 2012-08-06T16:58:56.263 回答
0

如果您使用 IDE 或其他工具为您构建所有内容,请检查以确保它包含 jar 中的所有类。我见过没有包含所有类文件的 Eclipse IDE 导出 jar。如果是这种情况,只需将类文件放入 jar 中。

于 2012-08-06T17:08:34.110 回答