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打包命令内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
时间:2020-05-09
jcmd是JDK自带的调试工具,具有非常强大的功能.jcmd是JDK7中正式引入的,有了jcmd,完全可以替换很多常用的其他工具,比如jstak和jmap. jcmd可以将具体的诊断命令发送给JVM.为了安全起见,使用jcmd的用户必须跟运行的java程序具有同样的用户和用户组. jcmd的调试命令有很多种,每一种调试命令又有自己的参数. 本文将会结合具体的例子详细讲解jcmd的使用. jcmd的语法 jcmd的语法比较简单: jcmd [pid | main-class] command...
JDK 14的新特性:更加好用的NullPointerExceptions 让99%的java程序员都头痛的异常就是NullPointerExceptions了.NullPointerExceptions简称NPE,它是运行时异常的一种,也是java程序中最最容易出现的异常. 出现了NullPointerExceptions之后我们怎么处理呢? 一般情况下就是看日志,看一下到底哪一行出错了.如果这一行只有简单的代码,那么很容易就找到问题所在. 要命的是如果这一行很复杂,那么找出问题就不是那么容易
JDK14在2020年的3月正式发布了.可惜的是正式特性只包含了最新的Switch表达式,而Records,patterns,text blocks仍然是预览特性. 本文要讲的就是JDK14的一个预览特性instanceof的pattern matching. 也就是说在instanceof中可以使用模式匹配了. 怎么理解呢? 我们先举个历史版本中使用instanceof的例子. 假如我们是动物园的管理员,动物园里面有Girraffe和Hippo两种动物. @Data public class
简介 switch的新特性可是源远流长,早在JDK 12就以预览功能被引入了,最终在JDK 14成为了正式版本的功能:JEP 361: Switch Expressions (Standard). 其实Switch新增的功能有两个,一个就是可以连写case,一个就是switch可以带返回值了. 写在前面 就在我兴致勃勃的想要创建一个以switch命名的package的时候,突然间发现在IDEA中居然创建不java类了. 经过我的再三尝试,反复改名,终于被我发现了隐藏在里面的小秘密: java k
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
一.Object类介绍 Object类在Java里面是一个比较特殊的类,JAVA只支持单继承,子类只能从一个父类来继承,如果父类又是从另外一个父类继承过来,那他也只能有一个父类,父类再有父类,那也只能有一个,JAVA为了组织这个类组织得比较方便,它提供了一个最根上的类,相当于所有的类都是从这个类继承,这个类就叫Object.所以Object类是所有JAVA类的根基类,是所有JAVA类的老祖宗.所有的类,不管是谁,都是从它继承下来的. 二.toString方法介绍 一个字符串和另外一种类型连接
android中执行java命令的方法大家都晓得吗,下面一段内容给大家带来了具体解析. android的程序基于java开发,当我们接上调试器,执行adb shell,就可以执行linux命令,但是却并不能执行java命令. 那么在android的shell中是否就不能执行java程序了呢. 答案是否定的.我们可以通过app_process来执行java程序. 写一个hello world吧,就是刚开始学java的时候 写得那个hello world,这次要在android上运行. 用记事本新建
Web开发中的请求-响应模型: 在Web世界里,具体步骤如下: 1.Web浏览器(如IE)发起请求. 2.Web服务器(如Tomcat)接收请求,处理请求(比如用户新增,则将把用户保存一下),最后产生响应(一般为html). 3.web服务器处理完成后,返回内容给web客户端(一般就是我们的浏览器),客户端对接收的内容进行处理(如web浏览器将会对接收到的html内容进行渲染以展示给客户). 因此,在Web世界里: 都是Web客户端发起请求,Web服务器接收.处理并产生响应. 一般Web服务器是
Java异常类层次结构图: 异常的英文单词是exception,字面翻译就是"意外.例外"的意思,也就是非正常情况.事实上,异常本质上是程序上的错误,包括程序逻辑错误和系统错误.比如使用空的引用.数组下标越界.内存溢出错误等,这些都是意外的情况,背离我们程序本身的意图.错误在我们编写程序的过程中会经常发生,包括编译期间和运行期间的错误,在编译期间出现的错误有编译器帮助我们一起修正,然而运行期间的错误便不是编译器力所能及了,并且运行期间的错误往往是难以预料的.假若程序在运行期间出现了错误
Map简介 将键映射到值的对象.一个映射不能包含重复的键:每个键最多只能映射到一个值.此接口取代 Dictionary 类,后者完全是一个抽象类,而不是一个接口. Map 接口提供三种collection 视图,允许以键集.值集或键-值映射关系集的形式查看某个映射的内容.映射顺序 定义为迭代器在映射的 collection 视图上返回其元素的顺序.某些映射实现可明确保证其顺序,如 TreeMap 类:另一些映射实现则不保证顺序,如HashMap 类. 注:将可变对象用作映射键时必须格外小心.当对
Java 简介 Java是由Sun Microsystems公司(现已被oracle公司收购)于1995年5月推出的Java面向对象程序设计语言和Java平台的总称.由James Gosling和同事们共同研发,并在1995年正式推出,据oracle官方数据指数,目前全球已有上亿的系统是使用Java开发的. Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大和简单易用两个特征.Java语言作为静态面向对象编程
前言 本文中所有的代码使用 JavaScript 编写,但你也可以用其他兼容 JSR 223 的脚本语言.这些例子可作为脚本文件也可以在交互式 Shell 中一次运行一个语句的方式来运行.在 JavaScript 中访问对象的属性和方法的语法与 Java 语言相同. 本文包含如下几部分: 1.访问 Java 类 为了在 JavaScript 中访问原生类型或者引用 Java 类型,可以调用 Java.type() 函数,该函数根据传入的完整类名返回对应对象的类型.下面代码显示如何获取不同的对象类
1. 概述 Java 中的Set和正好和数学上直观的集(set)的概念是相同的.Set最大的特性就是不允许在其中存放的元素是重复的.根据这个特点,我们就可以使用Set 这个接口来实现前面提到的关于商品种类的存储需求.Set 可以被用来过滤在其他集合中存放的元素,从而得到一个没有包含重复新的集合. 2. 常用方法 按照定义,Set 接口继承 Collection 接口,而且它不允许集合中存在重复项.所有原始方法都是现成的,没有引入新方法.具体的 Set 实现类依赖添加的对象的 equals()
这一篇网络爬虫的实现就要联系上大数据了.在前两篇java实现网络爬虫和heritrix实现网络爬虫的基础上,这一次是要完整的做一次数据的收集.数据上传.数据分析.数据结果读取.数据可视化. 需要用到 Cygwin:一个在windows平台上运行的类UNIX模拟环境,直接网上搜索下载,并且安装: Hadoop:配置Hadoop环境,实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS,用来将收集的数据直接上传保存到HDFS,然后用MapReduce
Java异常简介 Java异常是Java提供的一种识别及响应错误的一致性机制. Java异常机制可以使程序中异常处理代码和正常业务代码分离,保证程序代码更加优雅,并提高程序健壮性.在有效使用异常的情况下,异常能清晰的回答what, where, why这3个问题:异常类型回答了"什么"被抛出,异常堆栈跟踪回答了"在哪"抛出,异常信息回答了"为什么"会抛出. Java异常机制用到的几个关键字:try.catch.finally.throw.thro