[英]How to bundle and launch a native Mac/Windows application with Java 11?
[英]How to bundle Java application for Mac/Windows?
我有一個 Java .jar 應用程序,我想將其分發給使用 Mac 或 Windows 的客戶。 我想使用一個工具來獲取我的 jar 文件並將其分別包裝在 Mac 和 Windows 的 .dmg 和 .exe 包裝器中,在運行時執行此操作:
可選功能:
查看適用於 Mac 的Package Maker和適用於 Windows 的高級安裝程序。
我已經將它們用於您列出的幾乎所有要求。
我沒有將它們用於自動更新,但您可能必須將該邏輯構建到您的應用程序中。
不過,不要指望他們會為您完成所有工作。
預計會花費大量時間為每個平台構建安裝程序。
我確信 Windows 和 Linux 有很多選擇。 Advanced Installer恰好是我唯一使用過的。
我相信Package Maker是 Mac 的標准。 它非常棒且易於使用。
祝你好運!
請注意,如果您將應用程序開發為 netbeans 平台應用程序,那么 netbeans 將為您生成跨平台安裝程序(包括 mac)。
事實上,它是一個 netbeans 應用程序,對應用程序的外觀和感覺幾乎沒有影響,您仍然可以使它的行為與任何獨立的 Swing 應用程序幾乎相同。
這具有以下優點,我認為這使其成為一個引人注目的選擇: - 跨平台 - 免費 - 在運行安裝程序之前不需要安裝 JDK - 集成了軟件更新過程
已經有一些很好的答案,但我想需要提到JavaWebStart 。 當然,它只適用於網絡部署,但安裝后您的應用程序也可能脫機運行。
功能(自動更新、JVM 版本檢查、桌面圖標)可用。
需要考慮的事項:
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.