使用jpackage
-
本次使用jdk16.0.1,在命令行輸入命令
jpackage xxx,可能會提醒需要安裝的軟件,下載安裝即可 -
創建一個文件夾source-file(名字隨意),把jar放進去,如果項目需要其他文件,也放進去,會被統一打包到exe/msi中
-
本次打包命令:
jpackage -i source-file -n quicKey --type "msi" --icon auto.ico --vendor "劉亞龍" --description "這是app描述" --copyright "這是版權信息" --app-version 1.01 --verbose --win-per-user-install --win-dir-chooser --win-menu --win-shortcut --win-console --main-jar change-music-1.0.jar -
如果不想彈出黑窗口,可以去掉命令行模式
--win-console -
--main-jar和-i是必須要提供的,其他的可以不提供,-n建議設置一個app名字. 注意,如果jar包里沒提供主類,需要用--main-class className指定,強烈建議在打包成jar時指定好程序入口,可以看這篇文章 -
簡潔常用命令項:
jpackage -i source-file -n quicKey --type "msi" --icon auto.ico --verbose --win-dir-chooser --win-menu --win-shortcut --win-console --main-jar change-music-1.0.jar
命令參數介紹:
```
jpackage -h
用法:jpackage <options>
示例用法:
--------------
生成適合主機系統的應用程序包:
對於模塊化應用程序:
jpackage -n name -p modulePath -m moduleName/className
對於非模塊化應用程序:
jpackage -i inputDir -n name --main-class className --main-jar myJar.jar
從預構建的應用程序映像:
jpackage -n name --app-image appImageDir
生成應用程序映像:
對於模塊化應用程序:
jpackage --type app-image -n name -p modulePath \
-m moduleName/className
對於非模塊化應用程序:
jpackage --type app-image -i inputDir -n name \
--main-class className --main-jar myJar.jar
要為 jlink 提供您自己的選項,請單獨運行 jlink:
jlink --output appRuntimeImage -p modulePath -m moduleName \
--no-header-files [<additional jlink options>...]
jpackage --type app-image -n name \
-m moduleName/className --runtime-image appRuntimeImage
生成 Java 運行時程序包:
jpackage -n name --runtime-image <runtime-image>
--------------
一般選項:
@<filename>
從文件讀取選項和/或模式
可以多次使用此選項。
--type -t <type>
要創建的程序包的類型
有效值為:{"app-image", "exe", "msi"}
如果未指定此選項,則將創建與平台相關的
默認類型。
--app-version <version>
應用程序和/或程序包的版本
--copyright <copyright string>
應用程序的版權
--description <description string>
應用程序的說明
--help -h
將用法文本輸出到輸出流並退出,用法文本中包含
適用於當前平台的每個有效選項的列表和說明
--name -n <name>
應用程序和/或程序包的名稱
--dest -d <destination path>
用來放置所生成的輸出文件的路徑
默認為當前的工作目錄。
(絕對路徑或相對於當前目錄的路徑)
--temp <file path>
用來創建臨時文件的新目錄或空白目錄的路徑
(絕對路徑或相對於當前目錄的路徑)
如果指定,則在任務完成時將不刪除臨時目錄,
必須手動刪除臨時目錄
如果未指定,則將創建一個臨時目錄,
並在任務完成時刪除該臨時目錄。
--vendor <vendor string>
應用程序的供應商
--verbose
啟用詳細的輸出
--version
將產品版本輸出到輸出流並退出
用來創建運行時映像的選項:
--add-modules <模塊名稱>[,<模塊名稱>...]
要添加的模塊的逗號 (",") 分隔列表。
此模塊列表連同主模塊(如果指定)
將作為 --add-module 參數傳遞到 jlink。
如果未指定,則僅使用主模塊(如果指定了 --module),
或者使用默認的模塊集(如果指定了
--main-jar)。
可以多次使用此選項。
--module-path -p <module path>...
路徑的 ; 分隔列表
每個路徑要么是模塊的目錄,要么是
模塊 jar 的路徑。
(每個路徑可以是絕對路徑,也可以是相對於當前目錄的路徑)
可以多次使用此選項。
--jlink-options <jlink 選項>
要傳遞給 jlink 的選項列表(用空格分隔)
如果未指定,則默認為 "--strip-native-commands
--strip-debug --no-man-pages --no-header-files"
可以多次使用此選項。
--runtime-image <file path>
將復制到應用程序映像的預定義
運行時映像的路徑
(絕對路徑或相對於當前目錄的路徑)
如果未指定 --runtime-image,jpackage 將運行 jlink 以
使用如下選項創建運行時映像:
--strip-debug、--no-header-files、--no-man-pages 和
--strip-native-commands。
用來創建應用程序映像的選項:
--icon <icon file path>
應用程序包圖標的路徑
(絕對路徑或相對於當前目錄的路徑)
--input -i <input path>
包含要打包的文件的輸入目錄的路徑
(絕對路徑或相對於當前目錄的路徑)
輸入目錄中的所有文件將打包到
應用程序映像中。
用來創建應用程序啟動程序的選項:
--add-launcher <launcher name>=<file path>
啟動程序的名稱和包含關鍵字-值對列表的
屬性文件的路徑
(絕對路徑或相對於當前目錄的路徑)
可以使用關鍵字 "module"、"main-jar"、"main-class"、
"arguments"、"java-options"、"app-version"、"icon" 和
"win-console"。
這些選項將添加到原始命令行選項中或者用來覆蓋
原始命令行選項,以構建額外的替代啟動程序。
將從命令行選項構建主應用程序啟動程序。
可以使用此選項構建額外的替代啟動程序,
可以多次使用此選項來構建
多個額外的啟動程序。
--arguments <main class arguments>
在沒有為啟動程序提供命令行參數時,
要傳遞到主類的命令行參數
可以多次使用此選項。
--java-options <java options>
要傳遞到 Java 運行時的選項
可以多次使用此選項。
--main-class <class name>
要執行的應用程序主類的限定名稱
只有在指定了 --main-jar 時才能使用此選項。
--main-jar <main jar file>
應用程序的主 JAR;包含主類
(指定為相對於輸入路徑的路徑)
可以指定 --module 或 --main-jar 選項,但是不能同時指定
兩者。
--module -m <module name>[/<main class>]
應用程序的主模塊(以及可選的主類)
此模塊必須位於模塊路徑中。
如果指定了此選項,則將在 Java 運行時映像中
鏈接主模塊。可以指定 --module 或 --main-jar 選項,
但是不能同時指定這兩個選項。
用來創建應用程序啟動程序的與平台相關的選項:
--win-console
為應用程序創建控制台啟動程序,應當為
需要控制台交互的應用程序指定
用來創建應用程序包的選項:
--app-image <file path>
用來構建可安裝程序包的
預定義應用程序映像的位置
(絕對路徑或相對於當前目錄的路徑)
--file-associations <file path>
包含關鍵字-值對列表的屬性文件的路徑
(絕對路徑或相對於當前目錄的路徑)
可以使用關鍵字 "extension"、"mime-type"、"icon" 和 "description"
來描述此關聯。
可以多次使用此選項。
--install-dir <file path>
默認安裝位置下面的相對子路徑
--license-file <file path>
許可證文件的路徑
(絕對路徑或相對於當前目錄的路徑)
--resource-dir <path>
覆蓋 jpackage 資源的路徑
可以通過向該目錄中添加替代資源來覆蓋 jpackage 的
圖標、模板文件和其他資源。
(絕對路徑或相對於當前目錄的路徑)
--runtime-image <file-path>
要安裝的預定義運行時映像的路徑
(絕對路徑或相對於當前目錄的路徑)
在創建運行時程序包時需要使用選項。
用來創建應用程序包的與平台相關的選項:
--win-dir-chooser
添加一個對話框以允許用戶選擇
產品的安裝目錄
--win-menu
將該應用程序添加到系統菜單中
--win-menu-group <menu group name>
啟動該應用程序所在的菜單組
--win-per-user-install
請求基於每個用戶執行安裝
--win-shortcut
為應用程序創建桌面快捷方式
--win-upgrade-uuid <id string>
與此程序包升級相關聯的 UUID
