一、概述
在本教程中,我们将首先学习如何将Java 程序打包到可执行的Java ARchive (JAR) 文件中。然后,我们将了解如何使用该可执行JAR 生成Microsoft Windows 支持的可执行文件。
我们将使用Java 附带的jar
命令行工具来创建JAR 文件。然后,我们将学习使用jpackage
工具(可用于Java 16 及更高版本的jdk.jpackage,
来生成可执行文件。
2.jar
和jpackage
命令的基础知识
JAR 文件是已编译的Java 类文件和其他资源的容器。它基于流行的ZIP 文件格式。
可执行的JAR 文件也是一个JAR 文件,但也包含一个主类。主类在清单文件中被引用,我们稍后会讨论。
为了运行以JAR 格式交付的应用程序,我们必须有一个Java 运行时环境(JRE)。
与JAR 文件不同,特定于平台的可执行文件可以在为其构建的平台上本地运行。例如,该平台可以是Microsoft Windows、Linux 或Apple macOS。
为了获得良好的最终用户体验,最好为客户提供特定于平台的可执行文件。
2.1。jar
命令
创建JAR 文件的一般语法是:
jar cf jar-file input-file(s)
让我们看一下使用jar
命令创建新存档时可以使用的一些选项:
c
指定我们要创建一个JAR 文件f
指定我们希望输出到一个文件m
用于包含来自现有清单文件的清单信息jar-file
是我们希望生成的JAR 文件的名称。JAR 文件通常具有.jar
扩展名,但这不是必需的。input-file(s)
是一个以空格分隔的文件名列表,我们希望将其包含在JAR 文件中。通配符*
也可以在这里使用。
一旦我们创建了一个JAR 文件,我们就会经常检查它的内容。要查看JAR 文件包含的内容,我们使用以下语法:
jar tf jar-file
这里,t
表示我们要列出JAR 文件的内容。f
选项表示我们要检查的JAR 文件是在命令行中指定的。
2.2.jpackage
命令
jpackage
命令行工具帮助我们为模块化和非模块化Java 应用程序生成可安装的包。
它使用jlink
命令为我们的应用程序生成Java 运行时映像。结果,我们得到了一个针对特定平台的自包含应用程序包。
由于应用程序包是为目标平台构建的,因此该系统必须包含以下内容:
应用程序本身
一个JDK
打包工具所需的软件。对于Windows,
jpackage
需要WiX 3.0 或更高版本。
以下是jpackage
命令的常用形式:
jpackage --input . --main-jar MyAppn.jar
3. 创建可执行文件
现在让我们来创建一个可执行的JAR 文件。准备就绪后,我们将着手生成Windows 可执行文件。
3.1。创建可执行JAR 文件
创建可执行JAR 相当简单。我们首先需要一个Java 项目,其中至少包含一个带有main()
方法的类。我们为示例创建了一个名为MySampleGUIAppn
的Java 类。
第二步是创建一个清单文件。让我们将清单文件创建为MySampleGUIAppn.mf
:
Manifest-Version: 1.0 Main-Class: MySampleGUIAppn
我们必须确保此清单文件末尾有一个换行符才能正常工作。
清单文件准备好后,我们将创建一个可执行的JAR:
jar cmf MySampleGUIAppn.mf MySampleGUIAppn.jar MySampleGUIAppn.class MySampleGUIAppn.java
让我们查看我们创建的JAR 的内容:
jar tf MySampleGUIAppn.jar
这是一个示例输出:
META-INF/ META-INF/MANIFEST.MF MySampleGUIAppn.class MySampleGUIAppn.java
接下来,我们可以通过CLI 或GUI 运行我们的JAR 可执行文件。
让我们在命令行上运行它:
java -jar MySampleGUIAppn.jar
在GUI 中,我们可以简单地双击相关的JAR 文件。这应该像任何其他应用程序一样正常启动它。
3.2.创建Windows 可执行文件
现在我们的可执行JAR 已经准备就绪并且可以工作了,让我们为示例项目生成一个Windows 可执行文件:
jpackage --input . --main-jar MySampleGUIAppn.jar
此命令需要很短的时间才能完成。完成后,它会在当前工作文件夹中生成一个exe
文件。可执行文件的文件名将与清单文件中提到的版本号连接。我们将能够像任何其他Windows 应用程序一样启动它。
以下是我们可以与jpackage
命令一起使用的更多特定于Windows 的选项:
–type
: 指定msi
而不是默认的exe
格式–win-console
: 使用控制台窗口启动我们的应用程序–win-shortcut
: 在Windows 开始菜单中创建一个快捷方式文件–win-dir-chooser
:让最终用户指定自定义目录来安装可执行文件–win-menu –win-menu-group
:让最终用户在开始菜单中指定自定义目录
4。结论
在本文中,我们学习了有关JAR 文件和可执行JAR 文件的一些基础知识。我们还了解了如何将Java 程序转换为JAR 可执行文件,然后再转换为Microsoft Windows 支持的可执行文件。
0 评论