簡體   English   中英

分發Java應用程序和文件

[英]Distributing Java Application and files

我剛剛編寫了一個Java應用程序來與血液機器對話。 並使用OAuth安全性和XML將數據發布到Web服務器,該應用程序運行良好。

但是現在我需要將其分發給擁有這些機器的客戶。 該程序在一個.jar文件中,它還需要我的project / dist文件夾中的其他.jar文件。

在執行過程中,它只使用少量.png文件,這些文件在屏幕上顯示為圖標,用戶可以單擊等。

我想要一些如何將所有這些包裝在一起(包括圖像)並通過安裝程序分發它們,或者我可以使用Web服務器。

實現此目的的最佳方法是什么,我嘗試復制.jar和dist文件夾(根據netbeans發出的說明),但是當我運行java -jar myfile.jar時,它會打印出我從IOException,因為我沒有包括.png文件。

PNG文件的代碼:我使用以下代碼:

try 
    {
        databaseimage = ImageIO.read(new File("image/database.png"));
        databaseDisconnectedImage = ImageIO.read(new  File("image/database_delete.png"));

    } 
    catch (IOException ioe)
    {
        System.out.println("Problem Creating Systray: "+ioe.getMessage()+" Current Working Directory is: "+System.getProperty("user.dir"));
    }

您有多種選擇,包括:

  • 構建一個將相關文件安裝在用戶計算機上的安裝程序。 您可以從頭開始編寫它,也可以使用商業或開源工具來創建安裝程序。 (在多種操作系統類型上安裝會變得復雜...)

  • 重組應用程序,以便通過類路徑而不是直接從文件系統中獲取所有資源(例如圖像)。 然后,通過展開所有從屬的JAR和資源,將文件組裝到一棵樹中,並對該樹進行JAR,來創建可執行文件“ Uber-JAR”。 (通過向清單添加幾個條目,使JAR可執行。)

  • 為該應用程序創建一個JNLP啟動器。 僅當最終用戶將能夠訪問托管應用程序文件的網站時,此方法才有效,但它可以巧妙地解決更新應用程序並確保用戶使用最新JVM的問題。

哪個最好? 每種選擇都有其優缺點,您將需要找出最適合自己的方法

繁重的解決方案是使用Maven並創建可執行jar,也就是程序集,也就是具有依賴項的jar。 一個jar可以同時包含其依賴項和元數據,以使其正常運行。

java -jar Client-1.0-SNAPSHOT-jar-with-dependencies.jar

會工作。 我假設有一個使用Ant的類似解決方案,這是另一個構建Java程序的工具。

更手動:稍等一下-包括用於運行程序的類路徑在內的任何命令,請確保將其保存到腳本中。 它需要的所有文件都將其捆綁成.zip並發送出去,並帶有解壓縮和cd的說明。 最終,您只需要運行一堆文件,您只需要將它們發送過來並保留目錄結構,即可運行腳本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM