最近帮朋友写了一个 UI 小工具 . 起初是用 Javascript 写的, 但是需要对结果进行文件归类 , 而 Javascript 没有权限创建文件夹 , 因此只好换 JavaFX 来写 . 在程序写完打包时遇到一些问题 , 记录在此 , 方便后续查阅 .

常规 JavaFX 项目打包

这个直接利用 IDEA 的 Build artifacts , 步骤比较常规 , 此处不做展开 .

传送门

Maven JavaFX 项目打包

maven 项目如果直接用以上的方法打包, 会发现客户端无法打开 , 可以直接使用 java -jar xxx.jar 部署查看具体原因 , 通常是因为项目通过 maven 引入的类及资源未打进 jar 包里 . 因此这里我们需要借助打包插件 .

javafx-maven-plugin

引入插件包 , 并修改 vendormainClass

1
2
3
4
5
6
7
8
9
<plugin>
<groupId>com.zenjava</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>8.8.3</version>
<configuration>
<vendor>YourCompany</vendor>
<mainClass>your.package.with.Launcher</mainClass>
</configuration>
</plugin>

然后打包

mvn jfx:jar , 打包完成的目录在 target/jfx/app