2011-09-25 69 views
4

我對Java仍然很陌生,而且我很新的導出.jar文件。我有一個我想發送給一些朋友的小遊戲,我在另一個問題中被告知我應該將其導出到可執行的jar文件中。那麼我終於在計算機上工作了,但是當我將它發送給其他人時,它不起作用,因爲他們沒有圖書館。在.jar文件中導出java庫

我正在導入objectdraw庫,但沒有,我的程序根本無法運行!

所以基本上我需要找到一種方法來導出對象繪圖庫作爲我的.jar文件的一部分,以便他們也可以使用它。我是否簡單地將它包含在jar命令的包含文件部分中? ex:jar cmf MANIFEST.mf Archery.jar * /System/Library/Java/Extensions/objectdraw.jar

還是什麼?我現在正在使用命令行。

+2

您正在使用Eclipse IDE嗎?最簡單的方法是使用導出嚮導... – Matt

+0

不,我一直在命令行工作。我有netbeans,但我從來沒有使用它。 – CaldwellYSR

+0

開始使用Eclipse。或智能。甚至是NetBeans。 – ben

回答

0

發現我發現這樣做的最好方法是將庫解壓縮,然後將所有生成的文件放入最終壓縮文件中。這樣它實際上在其他計算機上工作。

jar xf library_wanted.jar; jar cvmf MANIFEST.mf end_result.jar *.class library_wanted/ 
+0

此解決方案不起作用。 –

+0

該解決方案的哪部分功能無效?我這樣做已經5年了。從我記得我只是解壓縮.jar文件並將其添加到最終的.jar文件中,我沒有問題。 – CaldwellYSR

2

最簡單的方法是發送JAR庫文件,並將Class-Path條目添加到清單。此項目將如下所示:

Class-Path: objectdraw.jar 

你也可以手動設置CLASSPATH環境變量。

或者,您可以解壓縮庫並將所有(或只是所需的文件)添加到最終的jar文件中。但這並不總是奏效,因爲有些庫依賴於teir JAR文件的完整性。

最後,可以在主JAR中包含依賴項,但它需要一個自定義類加載器。

+0

將類路徑只是objectdraw.jar或整個路徑? – CaldwellYSR

+0

@Cald如果它們在同一個目錄中,它將只是'objectdraw.jar'。例如,您也可以將這些庫放在一個名爲'lib'的子目錄中,而不是使用'lib/objectdraw.jar'。 – Artefacto

+0

好的,我想我可以那樣做。感謝您的幫助 – CaldwellYSR