JDK14打包工具jpackage的使用

总结:

一套打包下来发现目前jpackage工具还是处于小成阶段,至少不应该在执行基本命令时报错,打成安装包居然有57M,还是有很多没用的东西打进去了,而同样是这个项目,我自己研究的javafx+Maven多重依赖打包方法只有25M,两倍还有多,肉眼可见的对比伤害!具体请参考 :JDK14+JAVAFX14+Maven定制jre打包瘦身,必成版

1.项目代码案例请参考:JDK14新建javafx+Maven项目
2.了解需要使用的jpackage命令:
jpackage -n name --temp tempDir -p modulePath -m moduleName/className
注:更多命令解释请参考 - JDK14之jpackage打包命令
3.使用IDEA自带的右侧MavenProject栏,选择package,打包得到带依赖的jar包xzlDemo-1.0-SNAPSHOT-jar-with-dependencies.jar,在target目录下新建jarFile文件夹并将打好的包放进去,最后打开IDEA下方的Terminal,执行下面命令:
jpackage --name noneModuleJavafxProject --temp tempDir --input target/jarFile --main-class com.xzl.AppLauncher --main-jar xzlDemo-1.0-SNAPSHOT-jar-with-dependencies.jar
初次运行会报第一个错:
WARNING: Using incubator modules: jdk.incubator.jpackage
找不到 WiX 工具 (light.exe, candle.exe)
从 https://wixtoolset.org 下载 WiX 3.0 或更高版本,然后将其添加到 PATH。
错误:类型 [null] 无效或不受支持
解决:我们可以根据提示进入https://wixtoolset.org下载安装就好了,然后类似添加jdk的bin一样,将它的bin目录添加到path
(继续如图)
在这里插入图片描述
4.如上图,打包生成msi安装文件时出错了,但此时可以看到tempDir项目镜像目录已生成,继续查一下问题,打开wix的bin目录,将上面异常命令去掉逗号用cmd运行一次(注:light.exe相关的命令有兴趣的可以自己去了解下,为了方便看到结果,我修改了部分代码)
light.exe -spdb -cultures:“en-us” -ext WixUtilExtension -out D:\xuzhilinTest\xzlDemo\tempDir\images\win-exe.image\noneModuleJavafxProject-1.0.msi -loc D:\xuzhilinTest\xzlDemo\tempDir\config\MsiInstallerStrings_en.wxl D:\xuzhilinTest\xzlDemo\tempDir\wixobj\main.wixobj D:\xuzhilinTest\xzlDemo\tempDir\wixobj\bundle.wixobj
在这里插入图片描述
可以看到结果一样还是311,但是提示了codepage1252,此时打开英文codepage包tempDir/config/MsiInstallerStrings_en.wxl 文件可以看到
在这里插入图片描述
而在同目录下还有中文codepage的命令包:
在这里插入图片描述
既然保存是1252,我们就将它替换成中文的936,再试一次:
在这里插入图片描述
此时我们打开目录tempDir\images\win-exe.image
在这里插入图片描述
总结:

一套打包下来发现目前jpackage工具还是处于小成阶段,至少不应该在执行基本命令时报错,打成安装包居然有57M,还是有很多没用的东西打进去了,而同样是这个项目,我自己研究的javafx+Maven多重依赖打包方法只有25M,两倍还有多,肉眼可见的对比伤害!具体请参考 :

下一篇JDK14+JAVAFX14+Maven定制jre打包瘦身,必成版

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值