簡體   English   中英

如何為 Mac/Windows 捆綁 Java 應用程序?

[英]How to bundle Java application for Mac/Windows?

我有一個 Java .jar 應用程序,我想將其分發給使用 Mac 或 Windows 的客戶。 我想使用一個工具來獲取我的 jar 文件並將其分別包裝在 Mac 和 Windows 的 .dmg 和 .exe 包裝器中,在運行時執行此操作:

  1. 檢查是否安裝了 JRE; 如果沒有,它會從 Oracle 安裝 JRE6。 否則,它將安裝的 JRE 更新到最新的 1.6.x 版本。
  2. 在“開始”菜單(在 Windows 中)或“應用程序”文件夾(在 MacOSX 中)中創建指向我包裝的應用程序的快捷方式鏈接,並讓我的應用程序使用上述 JRE 運行
  3. 支持 Windows 的簡單“卸載應用程序”。 對於 Mac,只需將 .app 拖到廢紙簍即可刪除。

可選功能:

  1. 支持獨立於平台的應用程序圖標
  2. 支持自動更新 jar
  3. 運行我的 .jar 時支持 JRE 的參數
  4. Linux 支持(.deb 或 .rpm)

查看適用於 Mac 的Package Maker適用於 Windows 的高級安裝程序

我已經將它們用於您列出的幾乎所有要求。

我沒有將它們用於自動更新,但您可能必須將該邏輯構建到您的應用程序中。

不過,不要指望他們會為您完成所有工作。

預計會花費大量時間為每個平台構建安裝程序。

我確信 Windows 和 Linux 有很多選擇。 Advanced Installer恰好是我唯一使用過的。

我相信Package Maker是 Mac 的標准。 它非常棒且易於使用。

祝你好運!

為了在 Windows 上進行部署,我喜歡使用Launch4j來包裝我的應用程序 jar 並創建一個本地 Windows 可執行文件,該可執行文件可以檢測和使用已安裝的 JRE,或者允許您捆綁自己的 JRE。 作為構建過程的一部分,它快速、輕量且易於使用 Ant(或 Maven)編寫腳本。

結合這一點,我通常使用NSIS來創建一個安裝程序,其中包含快捷方式,並允許從控制面板安裝/卸載/修復。 通過一些工作,這也可以通過 Ant 編寫腳本,也可以從 Linux 平台構建。

這些解決方案顯然不適用於 Mac 部署,但我懷疑如果您想為最終用戶提供最佳體驗,您將不得不為不同的平台使用不同的工具。

我已經研究了一段時間,以便我可以在 Linux 和 Windows 中安裝該應用程序。 我發現的最好的選擇是 -

您可以在這篇博文中找到如何在本機使用它的信息。 但是在 Linux 中安裝它讓我使用了一個 .sh 腳本。 至於mac,我的知識有限。 希望這可以幫助。

請注意,如果您將應用程序開發為 netbeans 平台應用程序,那么 netbeans 將為您生成跨平台安裝程序(包括 mac)。

事實上,它是一個 netbeans 應用程序,對應用程序的外觀和感覺幾乎沒有影響,您仍然可以使它的行為與任何獨立的 Swing 應用程序幾乎相同。

這具有以下優點,我認為這使其成為一個引人注目的選擇: - 跨平台 - 免費 - 在運行安裝程序之前不需要安裝 JDK - 集成了軟件更新過程

已經有一些很好的答案,但我想需要提到JavaWebStart 當然,它只適用於網絡部署,但安裝后您的應用程序也可能脫機運行。

功能(自動更新、JVM 版本檢查、桌面圖標)可用。

需要考慮的事項:

  • 您的應用程序需要像“普通”應用程序一樣具有訪問權限。
  • afaik 除了通過網絡下載之外,您不能以任何其他方式發送您的應用程序。

Java 運行時環境 (JRE)自 JDK 11 起就消失了。

JDK 11 發行說明指出 -

在此版本中,不再提供 JRE 或服務器 JRE。 僅提供 JDK。 用戶可以使用 jlink 創建更小的自定義運行時。

Reddit 上的 u/0x256 對這個問題有很好的評論

不再有單獨的 JRE,只有包含所有 JRE 部分(例如 java 二進制文件)的 JDK。 另外,除非您打算付錢給他們,否則不要使用 OracleJDK。 OpenJDK 是新的默認值。

您可以使用jlink (JDK 附帶的)來分發 Java 應用程序。 它將為您構建一個專用的 JRE。 您不需要在客戶端機器上安裝 java。

一篇oracle 博客文章提到——

使用 JDK 9 中引入的“jlink”工具將使應用程序開發人員能夠更輕松地打包和部署專用運行時,而不是依賴於預安裝的系統 JRE。

暫無
暫無

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

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