1、构建基于模块的javafx项目,并由maven管理。添加maven插件javafx-maven-plugin,并使用命令mvn javafx:jlink生成runtime。
2、基于步骤1中的runtime,使用jpackage生成exe启动器,命令示例:
./jpackage.exe --type app-image -n TM -m vision/tm.vision.ui.ApplicationEntry --runtime-image F:\code\TM_Vision\target\tm-vision --temp F:/temp --dest F:/TM --java-options "-Djavafx.preloader=tm.vision.ui.ApplicationPreloader --add-opens java.base/java.lang=vision --add-reads org.mybatis=vision"
其中vision/tm.vision.ui.ApplicationEntry为模板/启动类,F:\code\TM_Vision\target\tm-vision为步骤1生成的runtime,--java-options添加虚拟机参数,无参数可去掉,运行完后生成如下图:
3、生成安装文件,命令:./jpackage.exe --name TM --app-image f:/TM/TM --dest F:/, --app-image参数为步骤2中--dest指定的目录。
注意,在windows上执行需要安装wix310.exe,安装后并把其bin目录配置到环境变量中;jdk14和jdk15版本的jpackage命令在步骤2中无问题,但步骤3会有问题,需要使用jdk16版本运行。