Java 教程

Java 控制語句

面向物件程式設計

Java 內建類

Java 檔案處理

Java 錯誤與異常

Java 多執行緒

Java 同步

Java 網路程式設計

Java 集合

Java 介面

Java 資料結構

Java 集合演算法

高階 Java

Java 雜項

Java API 與框架

Java 類引用

Java 有用資源

Java - 打包工具



在 Java 14 中,引入了一個新的**打包工具** `jpackage` 來替代 `javapackager`。`javapackager` 是 JavaFX 工具包的一部分,並在 Java 8 中引入。從 Java 11 開始,JavaFX 不再是 Java API 的標準特性,`javapackager` 也就不再是標準發行版的一部分了。`jpackage` 正是為了滿足這一需求而誕生的。`jpackage` 使開發人員能夠將 jar 檔案打包成本機可安裝格式,例如 Windows 的 exe/msi、MacOS 的 pkg/dmg 等等。

開發人員可以使用 `jlink` 將所需的 JDK 模組壓縮到最小模組,並使用 `jpackage` 建立輕量級映象。

`javapackager` 的需求

當軟體需要分發時,首選的方式是向終端使用者提供一個可安裝的軟體包。這個可安裝的軟體包通常包含 JDK、模組、任何依賴檔案和配置,併為使用者提供一種熟悉的方式來安裝軟體。使用者不應該被要求安裝 JRE 或 JDK 作為執行 Java 應用程式的先決條件。`jpackage` 處理所有這些情況,並將所有必需的檔案與 JRE/JDK 一起打包到一個本機安裝程式中。

`javapackager` 的命令列選項

`jpackage` 是一個命令列工具,並提供各種選項來定製可安裝的軟體。以下是 `javapackager` 提供的一些功能:

  • 開發人員可以提供自定義圖示。

  • 開發人員可以提供特定的位置來安裝應用程式。

  • 開發人員可以將應用程式引數傳遞給應用程式,JVM 選項在啟動應用程式時使用。

  • 開發人員可以設定檔案關聯來啟動應用程式。

  • 開發人員可以設定選項來修改特定於平臺的選單組選項以啟動應用程式。

  • 開發人員可以配置多個啟動器來啟動應用程式。

  • 使用 Xcode,也可以簽署捆綁包。但這僅適用於 MacOS。

先決條件

以下是使用 `javapackager` 工具準備可安裝程式的先決條件。

  • 首先需要 JDK 和軟體應用程式。

  • 獲取特定於平臺的打包工具,如下所示:

    • **Windows** - 要建立 EXE/MSI 可安裝程式,需要 Wix 3.0 或更高版本的第三方庫。

    • **Ubuntu Linux** - 要建立 RPM、DEB 包,我們需要 fakeroot 包。

    • **Red Hat Linux** - 要建立 RPM、DEB 包,我們需要 rpm-build 包。

    • **MacOS** - 我們可以使用 Xcode 命令列工具建立軟體包。`-mac-sign` 選項可用於簽署軟體包,`-icon` 選項可用於提供自定義圖示。

  • 應用程式包應根據平臺準備。對於每個平臺,我們都必須分別執行命令。

建立軟體包

我們可以使用以下命令建立軟體包:

語法

jpackage --input lib \
  --name Tester \
  --main-jar Tester.jar \
  --main-class com.tutorialspoint.Tester \
  --type msi \
  --java-options '--enable-preview'

其中:

  • **input** - 包含所需庫的資料夾。

  • **name** - 可安裝軟體包的名稱。

  • **main-jar** - 要啟動應用程式的 jar 檔案。

  • **main-class** - 要啟動的 JAR 中主類的名稱。如果主 JAR 中的 MANIFEST.MF 檔案包含主類名稱,則不需要此選項。

  • **type** - 可安裝程式的型別。MacOS 為 DMG/PKG,Windows 為 MSI/EXE,Linux 為 DEB/RPM。

  • **java-options** - Java 執行時的選項。

此命令將建立一個 MSI 檔案,該檔案可以在 Windows 上安裝,並且應用程式可以使用起來像任何其他軟體一樣。

軟體包示例

public class APITester {
   public static void main(String[] args) {
      System.out.println("Welcome to TutorialsPoint.");
   }   
}

編譯並執行程式

$javac APITester.java
$jar cf APITester.jar APITester.class

輸出

對於 Windows 可執行檔案,您需要下載 WiX Toolset v3.11.2 (wix311-binaries.zip) 並將工具包新增到您的 PATH 環境變數中。

建立 jar 包並設定 PATH 環境變數後,將 jar 包放在名為 lib 的資料夾中,然後執行以下命令建立 Windows MSI 安裝程式。

$jpackage --input lib --name APITester --main-jar APITester.jar --main-class APITester --type msi
廣告