從 Java 創建 Jar 可執行文件和 Windows 可執行文件的指南
一、概述
在本教程中,我們將首先學習如何將 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 支持的可執行文件。
與往常一樣,示例的源代碼可在 GitHub 上獲得。