2012-12-25 59 views
3

你好,添加阿帕奇公地IO到我的項目

我已經添加了「阿帕奇公地IO」罐子到我的項目,在一個文件夾,名爲庫。 Eclipse不再強調Apache Commons jar中的類,這讓我認爲它是正確鏈接的。

但是,每當我導出我的jar,並運行它,我得到一個java.lang.ClassNotFoundException。 我該如何解決這個錯誤?

附加信息: - 出口爲可運行罐子,因爲這是對某事物的插件。 - 我確定這個jar在導出的jar裏面(用WinRAR打開)

非常感謝幫助,我花了2個多小時在interwebs上搜索!

+3

你不能在罐子裏放一個罐子......你需要在MANIFEST中引用commons罐子或使用'-classpath'選項。 –

+1

運行你的項目:'java -cp lib/common-io.jar; bin/classes my.mainclass.Main' –

+0

@ AndersR.Bystrup我一直把我的jdbc jar放在我的jar裏面,剛剛工作? – Bram

回答

0

創建一個名爲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使用的內容與您的程序在您自己運行時使用的內容之間的區別。