簡體   English   中英

如何制作我的jar的可分發批處理文件

[英]How to make a distributable batch file of my jar

嗨,我已經創建了一個Java應用程序並創建了一個jar文件。 然后我創建了一個批處理文件,例如-> startup.bat 。該文件的內容是java -jar MyApp.jar

現在,如果我雙擊批處理文件,則我的Java應用程序可以正常工作,因為jar文件和批處理文件都屬於同一目錄。 現在,我將批處理文件復制到桌面並運行,然后我的應用程序未運行。

另外,我希望我的批處理文件自動設置類路徑。

如何使用上述所有功能創建批處理文件

感謝Sunil Kumar Sahoo

如果jar是可執行的JAR(似乎來自您的示例),則您只需雙擊JAR文件 如果這不起作用,則應將java可執行文件與打開帶有.jar擴展名的文件的程序相關聯。 從資源管理器窗口中查看“ 工具”>“文件夾選項”>“文件類型”

為了使程序“可分發”,通常將其打包(即JAR文件和啟動腳本)在某個ZIP存檔中,然后將其提取到用戶PC上的文件夾中。 您的啟動腳本應提供JAR文件的相對路徑。 例如,如果您已將ZIP的內容組織到libbin文件夾中:

MyProject
  +--- lib (contains jars)
  +--- bin (contains .bat script)

在這種情況下, startup.bat文件應將Jar引用為:

%JAVA_HOME\bin\java -jar ..\lib\myapp.jar

這要求任何用戶:

  • 在其系統上安裝了JRE(除非也將其打包)
  • 在其路徑上設置javaJAVA_HOME環境變量

問題在於批處理文件不知道jar所在的位置,而是從其自己的路徑中尋找相對位置。 您也可以將jar文件復制到桌面。

如果只想在桌面上顯示一個圖標,請創建批處理文件的快捷方式,而不是副本。

我了解您想將您的應用程序分發到多台計算機上? 一個(非常)簡單的解決方案是創建一個zip / tar /任何檔案,其中包含所有需要的jar(包括MyApp.jar)和啟動腳本。

在腳本中,您可以使用-cp選項將jar設置為類路徑:

java -cp needed.jar:needed2.jar -jar MyApp.jar

如上所述,創建桌面快捷方式比復制腳本本身更好。

如果您的應用程序非常復雜(大小超過1 + GByte),則還可以使用Aslo-您可以分發包含jre的應用程序。

因為要在此處復制有點長,所以建議您看看Squirrel SQL的功能。 而且您將擁有一個非常不錯的跨數據庫工具,作為額外的獎勵;-)

它們使工具可以通過兩種可能的方式啟動:

  • 通過啟動jar本身,然后將從清單文件中獲取類路徑信息(有關詳細信息, 請參見此處 ,查找下載擴展名)。 在這種情況下,按照其他發布者的說明解壓縮文件的層次結構之后,只需在桌面上創建一個快捷方式即可
  • 與批處理文件。 您會看到batchfile解決方案非常復雜,尤其是classpath的構造。

所以我會選擇第一個解決方案。

暫無
暫無

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

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