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
广告
© . All rights reserved.