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

到此这篇关于JDK14之jpackage打包命令的使用的文章就介绍到这了,更多相关JDK14 jpackage打包命令内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 深入浅析jcmd:JDK14中的调试神器

    jcmd是JDK自带的调试工具,具有非常强大的功能.jcmd是JDK7中正式引入的,有了jcmd,完全可以替换很多常用的其他工具,比如jstak和jmap. jcmd可以将具体的诊断命令发送给JVM.为了安全起见,使用jcmd的用户必须跟运行的java程序具有同样的用户和用户组. jcmd的调试命令有很多种,每一种调试命令又有自己的参数. 本文将会结合具体的例子详细讲解jcmd的使用. jcmd的语法 jcmd的语法比较简单: jcmd [pid | main-class] command...

  • 解析JDK14中的java tools简介

    1.1 JDK 14详细概述 JDK 8 已经在 2014年 3月 18日正式可用,JDK 8作为长期支持(Long-Term-Support)版本,距离现在已经 5年多时间过去了.5年时间里很多企业也都换上了 JDK 8,2018年09月25日作为下一个LTS的JDK版本:JDK 11也应运而生,Oracle表示会对JDK 11提供大力支持.长期支持.之后陆续发布了JDK 12 和JDK 13,JDK 14在 2020年 3月17日正式发布. 1.2 JDK 14总体概览 Oracle在202

  • JDK14新特性之switch表达式的实现

    简介 switch的新特性可是源远流长,早在JDK 12就以预览功能被引入了,最终在JDK 14成为了正式版本的功能:JEP 361: Switch Expressions (Standard). 其实Switch新增的功能有两个,一个就是可以连写case,一个就是switch可以带返回值了. 写在前面 就在我兴致勃勃的想要创建一个以switch命名的package的时候,突然间发现在IDEA中居然创建不java类了. 经过我的再三尝试,反复改名,终于被我发现了隐藏在里面的小秘密: java k

  • JDK14的新特性:instanceof模式匹配的使用

    JDK14在2020年的3月正式发布了.可惜的是正式特性只包含了最新的Switch表达式,而Records,patterns,text blocks仍然是预览特性. 本文要讲的就是JDK14的一个预览特性instanceof的pattern matching. 也就是说在instanceof中可以使用模式匹配了. 怎么理解呢? 我们先举个历史版本中使用instanceof的例子. 假如我们是动物园的管理员,动物园里面有Girraffe和Hippo两种动物. @Data public class

  • JDK14的新特性NullPointerExceptions的使用

    JDK 14的新特性:更加好用的NullPointerExceptions 让99%的java程序员都头痛的异常就是NullPointerExceptions了.NullPointerExceptions简称NPE,它是运行时异常的一种,也是java程序中最最容易出现的异常. 出现了NullPointerExceptions之后我们怎么处理呢? 一般情况下就是看日志,看一下到底哪一行出错了.如果这一行只有简单的代码,那么很容易就找到问题所在. 要命的是如果这一行很复杂,那么找出问题就不是那么容易

  • 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 module

  • 浅析vue给不同环境配置不同打包命令

    第1步:安装cross-env npm i --save-dev cross-env 第2步:修改各环境下的参数 在config/目录下添加test.env.js.pre.env.js. 修改prod.env.js里的内容,修改后的内容如下: 'use strict' module.exports = { NODE_ENV: '"production"', EVN_CONFIG:'"prod"', API_ROOT:'"/apis/v1"' }

  • 浅析Linux tar打包命令

    范例一:将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar [root@linux ~]# tar -cvf /tmp/etc.tar /etc <==仅打包,不压缩! [root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc <==打包后,以 gzip 压缩 [root@linux ~]# tar -jcvf /tmp/etc.tar.bz2 /etc <==打包后,以 bzip2 压缩 # 特别注意,在参数 f 之后的文件档名是自

  • python之pyinstaller组件打包命令和异常解析实战

    项目场景: Python版本:3.8 因公司业务需求,须开发一套局域网内视频会议软件,此次采用Python实现此功能. 程序编写完并在编译器实现此功能后,采用pyinstaller组件打包成应用程序 问题描述: 在使用pyinstaller组件打包过程中,着实遇到一些问题,以下列出此次遇到主要的问题: 1.如何打包多个文件? 2.打包完运行后控制台显示"找不到指定模块.mkl_intel_thread.l.dll",图示如下: 3.打包如何排除不需要的组件以减少包的大小? 4.待补充

  • Linux tar 压缩打包命令使用方法第1/2页

    tar命令  [root@linux ~]# tar [-cxtzjvfpPN] 文件与目录 -. 参数: -c :建立一个压缩文件的参数指令(create 的意思): -x :解开一个压缩文件的参数指令! -t :查看 tarfile 里面的文件! 特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在! 因为不可能同时压缩与解压缩. -z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩? -j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩

  • 详解vue 不同环境配置不同的打包命令

    最近做的一个项目是配置了三个环境的:正式环境.测试环境和开发环境,下面以这个为例 第一步:安装cross-env npm i --save-dev cross-env 或者在 package.json中加上"cross-env": "^5.0.1"进行安装依赖 package.json: //这是我项目的目录 第二步:修改各环境下的参数 在config/目录下添加test.env.js.develop.env.js.并且修改文件里的内容 config/prod.en

  • vue实现分环境打包步骤(给不同的环境配置相对应的打包命令)

    在新建好的项目中,一般执行npm run build就是打包了,但此时只能打包到一个环境,不同环境需要配置不同的地址,可以手动更改接口的地址,也可以自行配置命令而不需要每次打包进行地址切换,步骤如下: 文件结构如下图: 1)在config文件内新建test.env.js文件: 'use strict' module.exports = { NODE_ENV: '"testing"', ENV_CONFIG:'"test"' } 2)修改config内的prod.en

  • Linux tar  压缩打包命令使用方法第1/2页

    tar命令  [root@linux ~]# tar [-cxtzjvfpPN] 文件与目录 -. 参数: -c :建立一个压缩文件的参数指令(create 的意思): -x :解开一个压缩文件的参数指令! -t :查看 tarfile 里面的文件! 特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在! 因为不可能同时压缩与解压缩. -z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩? -j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩

  • 详谈Linux打包与压缩及tar命令

    打包和压缩 在linux中,打包和压缩可以说是两个不同的概念,弄清这两个概念对于我们理解复杂的文件后缀有非常大的帮助 打包 将若干个文件和目录打包在一起变成一个大的文件,这时只是简单的打包,所以一般打包后的文件大小比被打包的文件总和还大 压缩 将一个文件根据一定的算法变成一个小文件,压缩比用来衡量压缩前与压缩后的文件大小比值 压缩 在linux中主要有三个压缩命令gzip.bzip2.xz,它们各自采用不同的压缩算法,说明及常用参数如下: 压缩命令 gzip bzip2 xz 文件名后续 .gz

  • layabox2.0命令行在vscode中编译打包问题

    检查node的版本和gulp版本,最好使用nvm来管理node版本,本人遇到这两种版本匹配的时候会造成layaair2-cmd命令编译报错的问题 形如下面的报错 primordials is not defined 我使用的正确的一组版本匹配 PS E:\study\project\laya\layaTestApp> nvm list 12.16.2 * 10.4.0 (Currently using 64-bit executable) PS E:\study\project\laya\lay

随机推荐