长期以来,Java开发人员一直希望构建可以直接安装在本机平台上的应用程序,而不是分发jar和配置类路径。使用jpackage,可以按照特定平台的用户使用的方式安装/卸载Java应用程序,它支持Windows上的msi和exe格式,MacOS 上的pkg和dmg以及Linux上的deb和rpm。安装使用jpackage构建的应用程序时,最终用户不应注意到任何差异。

jpackage的输出是一个Java应用程序映像,包含所有必需的Java依赖项。映像存储在文件系统的单个目录中,可以包含以下内容:

本机应用程序启动器

Java运行时映像,包括模块化应用程序时的应用程序模块

应用程序资源,例如jar,ico,png

配置文件,例如plist,cfg,properties

jpackage工具计划在新的jdk.jpackage模块中成为JDK 13的一部分。

jpackage工具有两种模式:

create-image - 生成特定于平台的应用程序镜像

create-installer - 为应用程序生成特定于平台的安装程序

要生成模块化应用程序镜像:

jpackage create-image --output outputdir --name AppName \

--main-class package.ClassName -module moduleName -p modulePath

jpackage create-image --o outputdir -n AppName \

-c package.ClassName -m moduleName -p modulePath

要生成非模块化应用程序映像:

jpackage create-image --input inputdir --output outputdir \

--name AppName --main-class package.ClassName --main-jar MyJar.jar

jpackage create-image -i inputdir -o outputdir -n AppName \

-c package.ClassName -j MyJar.jar

要生成应用程序安装程序:

jpackage create-installer -i inputdir -o outputdir \

-n  -c package.ClassName -j MyJar.jar

jpackage create-installer -o outputdir -n \

--app-image

要生成Java运行时安装程序:

jpackage create-installer --runtime-installer\

--name  --output outputdir

jpackage create-installer --runtime-installer \

-n  -o outputdir --runtime-image

一些适用于所有平台的选项:

--main-jar -j - 应用程序的主要JAR; 包含主类

--main-class -c - 要执行的应用程序主类的限定名称

--installer-type - 在create-image模式下创建的安装程序的类型(msi,exe,rpm,deb,dmg,pkg,pkg-app-store)

--runtime-installer - 为Java运行时生成特定于平台的安装程序。

--jvm-args - 传递给虚拟机的Java参数

--install-dir - 应用程序安装目录的绝对路径

某些选项仅适用于Mac OS X平台:

--mac-sign - 请求对包进行签名

--mac-bundle-name - 菜单栏中显示的应用程序的名称

--mac-app-store-category - Mac App Store类别

--mac-signing-keychain - 要使用的钥匙串的路径

关于jpackage的其他有趣的事情包括:

支持打包Java应用程序,使其适合提交到Windows或MacOS应用程序商店

设置文件关联时的本机集成,以便在打开具有关联后缀的文件时启动应用程序

本机集成,可以启动特定于平台的菜单组,例如Windows上的“开始”菜单项

不支持交叉编译; 应该通过在Windows上运行jpackage来创建Windows程序包

将不支持超出JMOD文件中已提供的法律文件,例如单个许可证文件

不支持原生启动画面

不支持自动更新机制

该工具在Solaris平台上不可用

不支持Java Web Start应用程序和JavaFX特定功能

该工具没有GUI; 仅提供命令行界面(CLI)

java .jpackage_jpackage安装Java原生本机应用的新工具相关推荐

  1. linux 删除java_Linux操作实录--卸载Java,安装Java

    首先:用root登录Linux系统 第一步:查看Linux系统中是否安装了jdk 可以使用查看Java版本的命令来查看:java -version 如上图,就表名我的Linux系统中已经安装了Java ...

  2. 【转】如何在Mac上卸载Java及安装Java

    如何在 Mac 上卸载 Java? 本文适用于: 平台: Macintosh OS X Java 版本: 7.0, 8.0 使用终端卸载 Oracle Java 注:要卸载 Java,必须具有管理员权 ...

  3. java环境安装(java环境安装教程)

    如何正确安装java-现在的JAVA环境怎么安装? JDK安装在C:\program files\java\jdk1.6.0,那么就要在环境变量中新建一个 JAVA_HOME 的变量,它的变量值就是 ...

  4. java在电脑上的用法,java怎么安装,java安装后怎么使用

    如何安装java环境?java是开发技术员使用最多的一种语言,有着跨平台使用的特点,深受技术员喜爱.对于刚入门的用户来说在安装配置java上会有一些难度,在本文中winwin7小编将给大家分享下配置j ...

  5. 安装 java decompiler_安装Java Decompiler

    原文:https://blog.csdn.net/yh_zeng2/article/details/75948467 Java Decompiler是Java语言的反编译工具,具体介绍见博客Java ...

  6. 速读原著-Java核心技术(安装Java开发工具包)

    第 2 章 Java 程序设计环境 本章主要介绍如何安装 Java 开发工具包( JDK ) 以及如何编译和运行不同类型的程序:控制台程序. 图形化应用程序以及 applet.运行 JDK 工具的方法 ...

  7. linux java maven_Linux安装java环境和maven

    安装OpenJDK软件包: apt-get install openjdk-8-jdk 查看版本信息java -version 则代表安装成功 安装maven可以使用自己本机下载好的mavan使用Xf ...

  8. linux安java,Linux安装Java

    从人类社会的角度看OO(独家视角) 引言 在OO的工作中,我们一定会涉及到类,抽象类和接口.那么类和抽象类以及接口到底扮演的什么角色? 本文主要是从人类社会的角度阐述类与抽象类以及接口的"社 ...

  9. kali linux 安装java_kali linux安装java

    首先在官网下载java压缩包:http://www.oracle.com/technetwork/java/javase/downloads/index.html 这里选择tar.gz的linux系统 ...

  10. centos 安装java web_Centos上安装java web的环境

    Centos上安装java web的环境 ,本次例子尽量不用yum形式安装(因为我不知道yum安装怎么指定目录,想把java,tomcat,mysql安装到指定的文件夹下,好管理). (java和to ...

最新文章

  1. 螃蟹不能吃的四个部位,爱吃螃蟹的一定要进来看看。
  2. Windows内核 基本汇编指令
  3. 通过script标签实现跨域
  4. 棉花糖多少钱_如何在6.0棉花糖及更高版本中访问Android的正在运行的应用程序列表...
  5. 使用 OAS(OpenAPI标准)来描述 Web API
  6. arm中clz指令_JavaScript中带有示例的Math.clz32()方法
  7. 自从用了 OkHttp,别的都完全不想用了!
  8. 解析搜狗等输入法右下角图标显示中英问题
  9. unity 电梯_unity官方demo学习之Stealth(十七)电梯移动设定
  10. html加页面脚注,javascript – 打印HTML每页脚注
  11. 手机如何测光照度_手机摄影,如何进行准确的测光?一篇文章教会你玩转“测光”...
  12. AlphaGo围棋论文中文翻译
  13. CSS实例——梦幻西游
  14. element中navMenu结合路由使用
  15. ip rule 路由策略数据库管理命令
  16. 计算机本地磁盘设密码,电脑硬盘,教您电脑硬盘怎么设置密码
  17. 把信送给加西亚读后感
  18. 在c++中用编程画一个圆
  19. 如何一眼辨别谁有男朋友/女朋友?哈哈哈哈哈哈哈
  20. Java实现斗地主游戏中洗牌,发牌,牌顺序逻辑

热门文章

  1. 哪种修复redis未授权访问漏洞的方法是相对不安全的_redis漏洞复现
  2. python人名最多数统计_《利用Python进行数据分析》-全美婴儿姓名案例
  3. 天津盈克斯机器人科技_坐标天津,适合亲子游的科技馆,亮点是机器人展区
  4. java多线程读取分割的文件_java多线程批量读取文件(二)--读写分离
  5. 03_安装和配置 kubectl
  6. ROS Learning-019 learning_tf-03(编程) 添加额外的坐标系 (Python版)
  7. 将Session写入数据库
  8. 2014年物联网Internet of Things应用简介
  9. 遇到的JAVA笔试题
  10. Ajax Js倒计时执行后台方法