我已經添加了「阿帕奇公地IO」罐子到我的項目,在一個文件夾,名爲庫。 Eclipse不再強調Apache Commons jar中的類,這讓我認爲它是正確鏈接的。
但是,每當我導出我的jar,並運行它,我得到一個java.lang.ClassNotFoundException。 我該如何解決這個錯誤?
附加信息: - 不出口爲可運行罐子,因爲這是對某事物的插件。 - 我確定這個jar在導出的jar裏面(用WinRAR打開)
非常感謝幫助,我花了2個多小時在interwebs上搜索!
我已經添加了「阿帕奇公地IO」罐子到我的項目,在一個文件夾,名爲庫。 Eclipse不再強調Apache Commons jar中的類,這讓我認爲它是正確鏈接的。
但是,每當我導出我的jar,並運行它,我得到一個java.lang.ClassNotFoundException。 我該如何解決這個錯誤?
附加信息: - 不出口爲可運行罐子,因爲這是對某事物的插件。 - 我確定這個jar在導出的jar裏面(用WinRAR打開)
非常感謝幫助,我花了2個多小時在interwebs上搜索!
創建一個名爲Manifest.mf的清單文件,並確保它包含在您的jar文件中。您可以在命令行中執行該操作,或將其作爲構建的一部分加入。我過去使用過螞蟻將文件複製到jar中。
該文件應包含的條目是這樣的:
Manifest-Version: 1.0
Main-Class: com.myproject.MyMainClass
Class-Path: commons-io.jar
如果這個文件被裝入在META-INF文件夾中的jar文件,那麼你就應該沒關係Eclipse之外運行。我自己學習的一件事就是將包含所有內容的可運行jar包與Eclipse進行封裝,然後將jar與我自己進行比較以查看其差異。您還可以在代碼中打印出您的類路徑,並查看Eclipse使用的內容與您的程序在您自己運行時使用的內容之間的區別。
你不能在罐子裏放一個罐子......你需要在MANIFEST中引用commons罐子或使用'-classpath'選項。 –
運行你的項目:'java -cp lib/common-io.jar; bin/classes my.mainclass.Main' –
@ AndersR.Bystrup我一直把我的jdbc jar放在我的jar裏面,剛剛工作? – Bram