2012-08-06 89 views
0

我不明白为什么当我运行jar文件出现此错误:投掷抛出java.lang.ClassNotFoundException即使类jar文件存在

Exception in thread "main" java.lang.NoClassDefFoundError: net/sf/mzmine/main/MZ mineModulesList at net.sf.mzmine.main.MZmineCore.main(MZmineCore.java:100) Caused by: java.lang.ClassNotFoundException: net.sf.mzmine.main.MZmineModulesList

它说,MZmineModulesList类没有找到,但它的存在在这条路上。当我将类写入jar文件时,可能我做错了什么?

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

+0

你最近在做什么?你能发布MZmineCore.java的代码吗? – 2012-08-06 16:50:24

+0

您使用的是什么IDE? – sundar 2012-08-06 16:56:33

+0

在运行时发布加载类的代码行。 – gmuhammad 2012-08-06 16:56:38

回答

1

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

0

该课程可能是非常好的。如果一个类可以从多个类加载器加载,那么这个错误也可能被抛出。

0

如果您使用IDE或其他方式为您构建所有内容,请检查以确保它包含jar中的所有类。我已经看到Eclipse IDE的导出jar文件没有包含所有的类文件。如果是这种情况,只需将类文件放在jar文件中即可。

+0

我正在使用读取jar文件的所有条目并将文件写入另一个jar文件的java代码,然后将我的新更新类添加到这个新的jar文件通过创建新条目 – user1574866 2012-08-06 17:19:25

相关问题