前言
最近尝试了一下用 JavaFX 技术来写一个客户端,希望最终打包成出可以放在其他不含 JRE 的电脑上的 exe 文件。因为关于 JavaFX 的资料比较少,而且多数打包资料的最终形式是 jar ,花了不少精力翻相关项目GitHub,CSDN、Stack Overflow等问答社区,在此整理记录。
环境准备
安装Maven插件
用到了javafx-maven-plugin这个插件:https://github.com/javafx-maven-plugin/javafx-maven-plugin
Maven仓库链接:https://mvnrepository.com/artifact/com.zenjava/javafx-maven-plugin
下面为我的 pom.xml 中的相关内容。
<plugin><groupId>com.zenjava</groupId><artifactId>javafx-maven-plugin</artifactId><version>8.8.3</version><configuration><mainClass>com.starrysky.UI</mainClass><appName>CAT</appName><vendor>Starrysky</vendor><additionalAppResources>./src/main/resources</additionalAppResources></configuration></plugin>
安装Inno Setup 5
根据插件作者的描述,打包成 exe 文件,需要安装Inno Setup。官网:https://jrsoftware.org/isinfo.php
一定要安装版本5.0的,不要安装版本6.0的。下载链接:https://files.jrsoftware.org/is/5/
安装时选择默认路径。
安装JDK1.8(含JavaFX)
我一开始用的是OpenJDK FX11,然后根据插件打包时的报错信息,需要用到 javapackager ,这个在JDK11中已经被移除了,所以我换回JDK8,解决了这个问题。
OpenJDK8下载(含JavaFX):https://www.azul.com/downloads/zulu-community/?package=jdk
打包
执行以下命令删除旧文件并根据当前操作系统打包。
mvn clean jfx:native
在项目的 target/jfx/native/appName 目录下生成了 .exe 及配套的运行环境,可以在其他的电脑上部署。
参考链接
https://github.com/javafx-maven-plugin/javafx-maven-plugin
https://mvnrepository.com/artifact/com.zenjava/javafx-maven-plugin/8.8.3
https://blog.csdn.net/liumiaocn/article/details/89785875
https://blog.csdn.net/qq_27503061/article/details/90612455
https://lhalcyon.com/javafx-project-artifacts/
