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
(继续如图)
JDK14打包工具jpackage的使用_第1张图片
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
JDK14打包工具jpackage的使用_第2张图片
可以看到结果一样还是311,但是提示了codepage1252,此时打开英文codepage包tempDir/config/MsiInstallerStrings_en.wxl 文件可以看到
JDK14打包工具jpackage的使用_第3张图片
而在同目录下还有中文codepage的命令包:
JDK14打包工具jpackage的使用_第4张图片
既然保存是1252,我们就将它替换成中文的936,再试一次:
JDK14打包工具jpackage的使用_第5张图片
此时我们打开目录tempDir\images\win-exe.image
JDK14打包工具jpackage的使用_第6张图片
总结:

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

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

你可能感兴趣的:(JDK14打包工具jpackage的使用)