2012-08-06 91 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

相關問題