set JAVA_HOME="C:/CommandLineTools/Java/jdk-15"mvn packagegradlew assemble
以下命令都是Java15的版本
java -p "./target/JavaFX-Package-Sample-1.0-SNAPSHOT.jar;C:/CommandLineTools/Java/javafx-sdk-15.0.1/lib" -m "sample/com.icuxika.MainApp"
jdeps --print-module-deps --ignore-missing-deps --module-path "C:/CommandLineTools/Java/javafx-sdk-15.0.1/lib" ./target/JavaFX-Package-Sample-1.0-SNAPSHOT.jar
执行以下命令,不出意外的话,会得到一个WIX TOOLSET 311的错误(Windows区域与语言为中文的情况下)
jpackage -n JavaFXSample -p "./target/JavaFX-Package-Sample-1.0-SNAPSHOT.jar;C:/CommandLineTools/Java/javafx-jmods-15.0.1" -m "sample/com.icuxika.MainApp" --icon ./src/main/resources/application.ico --app-version 1.0.0 --dest ./target/build-direct-package --temp ./target/build-direct-package/temp --win-dir-chooser --win-menu --win-menu-group JavaFXSample --win-shortcut
若是Windows区域语言为美国英语的话,不会出现此错误,需要手动指定下区域配置,来进行安装包制作,相关issue (此问题仅限于Windows平台,注意上一条命令中指定的temp目录)
light -nologo -spdb -cultures:zh-CN -ext WixUtilExtension -out ./target/build-direct-package/temp/images/win-exe.image/JavaFXSample-1.0.msi -sice:ICE27 -ext WixUIExtension -loc ./target/build-direct-package/temp/config/MsiInstallerStrings_zh_CN.wxl, -b, ./target/build-direct-package/temp/config ./target/build-direct-package/temp/wixobj/main.wixobj ./target/build-direct-package/temp/wixobj/bundle.wixobj
上面两条命令执行后,会得到安装程序,下面演示只生成exe及其依赖环境
jpackage --type app-image -n JavaFXSample -p "./target/JavaFX-Package-Sample-1.0-SNAPSHOT.jar;C:/CommandLineTools/Java/javafx-jmods-15.0.1" -m "sample/com.icuxika.MainApp" --icon ./src/main/resources/application.ico --app-version 1.0.0 --dest ./target/build-direct-app-package
执行
三
首先使用
JLink构建出bat及其依赖环境(通过mvn javafx:jlink或gradle jpackageImage也会得到这一步的结果)
jlink --output ./target/build-link -p "./target/JavaFX-Package-Sample-1.0-SNAPSHOT.jar;C:/CommandLineTools/Java/javafx-jmods-15.0.1" --add-modules java.base,javafx.controls,sample --launcher JavaFXSample="sample/com.icuxika.MainApp" --no-header-files --no-man-pages --compress=2 --strip-debug
然后基于
JLink构建出来的目录来进行JPackage构建出exe及其依赖环境
jpackage --type app-image -n JavaFXSample -m "sample/com.icuxika.MainApp" --icon "./src/main/resources/application.ico" --runtime-image "./target/build-link/" --dest "./target/build-package"
执行
三
此命令与
一中第一条是同一个结果(当前命令使用的是二中构建出的目录)
jpackage -n JavaFXSample --app-image ./target/build-package/JavaFXSample --app-version 1.0.0 --dest ./target/build-link-package --temp ./target/build-link-package/temp --win-dir-chooser --win-menu --win-menu-group JavaFXSample --win-shortcut
错误处理,相关issue (此问题仅限于Windows平台,注意上一条命令中指定的temp目录)
light -nologo -spdb -cultures:zh-CN -ext WixUtilExtension -out ./target/build-link-package/temp/images/win-exe.image/JavaFXSample-1.0.msi -sice:ICE27 -ext WixUIExtension -loc ./target/build-link-package/temp/config/MsiInstallerStrings_zh_CN.wxl, -b, ./target/build-link-package/temp/config ./target/build-link-package/temp/wixobj/main.wixobj ./target/build-link-package/temp/wixobj/bundle.wixobj
JPackage直接构建:135 MB- 先执行
JLink然后执行JPackage构建:106 MB - 通过Maven插件:
70.5 MB
| 命令 | Maven | Gradle |
|---|---|---|
| 生成bat | mvn javafx:jlink |
gradle jlink |
| 生成exe | 当前插件需要手动 | gradle jpackageImage |
| 制作安装包 | 看上面 | gradle jpackage(与三有着同样的问题) |