java Eclipse:如何使用外部jar構建可執行jar?




classpath external (5)

我正在嘗試構建一個可執行的jar程序,它取決於下載的外部jar。 在我的項目中,我將它們包含在構建路徑中,並且可以在eclipse中運行和調試。

當我嘗試將它導出到jar時,我可以運行程序,但是當我嘗試按下包含來自外部jar的函數調用和類的按鈕時,我無法運行。 我編輯了環境變量(Windows XP)CLASSPATH以包含所有外部jar的路徑,但它不起作用。

需要注意的一點是,我在導出可執行jar時遇到了編譯警告,但它沒有顯示有關警告的任何描述。

有人會提供一個關於如何使用eclipse包含外部jar程序的詳盡指南嗎?


如何將項目的jar包含到runnable jar中:

我正在使用Eclipse版本:3.7.2在Ubuntu 12.10上運行。 我還將向您展示如何製作build.xml以便您可以從命令行執行ant jar並使用提取到其中的其他導入jar創建jar。

基本上,您要求Eclipse構建build.xml,將您的庫導入jar中。

  1. 啟動Eclipse並創建一個新的Java項目,創建一個新的包'mypackage',添加您的主類: Runner將此代碼放在那裡。

  2. 現在包括Oraclemysql-connector-java-5.1.28-bin.jar 它使我們能夠編寫Java來連接MySQL數據庫。 通過右鍵單擊項目 - >屬性 - > java構建路徑 - >添加外部Jar - >選擇mysql-connector-java-5.1.28-bin.jar來完成此操作。

  3. 在eclipse中運行程序,它應該運行,並告訴你用戶名/密碼無效,這意味著Eclipse正確配置了jar。

  4. 在Eclipse中,轉到File - > Export - > Java - > Runnable Jar File 。 您將看到此對話框:

    確保設置“另存為ant腳本”複選框。 這就是為什麼你可以使用命令行稍後做一個ant jar

  5. 然後轉到終端並查看ant腳本:

所以你看,我運行jar並沒有錯誤,因為它發現嵌入在Hello.jar的包含mysql-connector-java-5.1.28-bin.jar

查看Hello.jar: vi Hello.jar ,你會看到許多對com/mysql/jdbc/stuff.class

要在命令行上執行ant jar以自動完成所有這些操作:將buildant.xml重命名為build.xml ,並將目標名稱從create_run_jarjar

然後,在MyProject輸入ant jar和boom。 你在MyProject中有你的jar。 你可以使用java -jar Hello.jar來調用它,一切正常。




您可以通過為jar 創建清單來完成此操作。 看看Class-Path標頭。 Eclipse可以選擇在導出時選擇自己的清單。

另一種方法是在調用應用程序時將依賴項添加到類路徑:

win32: java.exe -cp app.jar;dependency.jar foo.MyMainClass
*nix:  java -cp app.jar:dependency.jar foo.MyMainClass

Eclipse 3.5有一個選項可以將所需的庫打包到runnable jar中。 文件 - >導出...選擇runnable jar並單擊下一步。 可運行的jar導出窗口有一個單選按鈕,您可以在其中選擇將所需的庫打包到jar中。







external