JDK14之jpackage打包命令的使用
作者:徐志林 发布时间:2022-09-29 19:57:19
标签:JDK14,jpackage,打包
1.前提:已安装JDK14,可以到jdk官网下载,或加QQ群835259695,快速免费下载
2.不说没用的直接上jdk14环境下的jpackage命令,打开cmd窗口输入:jpackage -h 得到如下内容:
F:>jpackage -h
WARNING: Using incubator modules: jdk.incubator.jpackage
用法:jpackage
示例用法:
生成适合主机系统的应用程序包:
对于模块化应用程序:
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 的路径。
(每个路径可以是绝对路径,也可以是相对于当前目录的路径)
可以多次使用此选项。
--bind-services
将 --bind-services 选项传递到 jlink(将在服务
提供商模块及其被依赖对象中进行链接)
--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
总结:
对于javafx打包来说我就关注如何去使用前两条命令
对于模块化应用程序:
jpackage -n name -p modulePath -m moduleName/className
对于非模块化应用程序:
jpackage -i inputDir -n name
–main-class className --main-jar myJar.jar
使用范例:
例一: jpackage -n myAppName -p myModulePath -m xzlDemo/com.xzl.JavaFxApplication
例二: jpackage -i ./ --temp tempDir --type “exe” --main-jar SipWifiMonitor-1.0-SNAPSHOT-jar-with-dependencies.jar
来源:https://blog.csdn.net/u012698467/article/details/104897144


猜你喜欢
- 指针是什么?指针(Pointer)是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。换句话说就是可以通过指针找到以它为地址的内存
- 效果和代码都非常直观:实例1:TimePicker<RelativeLayout xmlns:android="http:/
- 使用fileupload组件的原因: Request对象提供了一个getInputStream()方法,通过这个方法可以读取到客户端提交过来
- 本文实例为大家分享了C#生成验证码图片的具体代码,供大家参考,具体内容如下/// <summary>
- 需要的jar包:数据库代码:create database school character set utf8;use school;CRE
- HashMap和Hashtable的比较是Java面试中的常见问题,用来考验程序员是否能够正确使用集合类以及是否可以随机应变使用多种思路解决
- 前言最近我跟自定义View杠上了,甚至说有点上瘾到走火入魔了。身为菜鸟的我自然要查阅大量的资料,学习大神们的代码,这不,前两天正好在郭神在微
- 本文以实例形式讲述了基于Java的图的广度优先遍历算法实现方法,具体方法如下:用邻接矩阵存储图方法:1.确定图的顶点个数和边的个数2.输入顶
- 本文实例讲述了Android编程实现获取新浪天气预报数据的方法。分享给大家供大家参考,具体如下:新浪天气预报地址:http://php.we
- 第 1 步:将这个 Spring Boot 项目的打包方式设置为 war。<packaging>war</packagin
- 有时候在单机部署,或者项目没有在IDea 开发工具中运行(idea可以自动打开tomcat项目),需要项目启动后自动打开浏览器访问项目,配置
- 文章转自微信公众号:CPP开发前沿当进程结束使用共享内存区时,要通过函数 shmdt 断开与共享内存区的连接。该函数声明在 sys/shm.
- 一、位运算的分类与展现效果java位运算可以分为左移和右移,其中右移还有无符号右移。 java只对整型位移,可以分为int体系和long体系
- 1、为什么使用Spring提供的JDBC的封装?因为Spring提供了完整的模板类以及基类可以简化开发,我们只需写少量的代码即可。2、实例讲
- Java提示缺少返回值语句怎么办?这里我们给大家提供具体的解决方法。首先,以下面的程序为例,会看到在控制台有:错误:缺少返回语句的提示。找到
- 使用simplecommand下载网络图片,并显示到ImageView控件上。1 在app module的build.gradle将simp
- 本文实例为大家分享了C#实现PC蓝牙通信代码,供大家参考,具体内容如下添加引用InTheHand.Net.Personal.dll首先创建一
- 静态库和动态库的区别1、静态库的扩展名一般为".a"或者".lib";动态库的扩展名一般为"
- 常量池中各数据项类型详解常量池中的数据项是通过索引来引用的, 常量池中的各个数据项之间也会相互引用。在这11中常量池数据项类型中, 有两种比
- 本文实例讲述了java中javamail发送带附件的邮件实现方法。分享给大家供大家参考。具体分析如下:JavaMail,顾名思义,提供给开发