如何将IntelliJ中基于Kotlin开发的TornadoFX桌面应用打包分发
TornadoFX 项目打包发布可行方案
方案1:构建带全依赖的可执行Jar(快速交付)
这个方案操作简单,生成的文件兼容性强,适合快速给客户测试使用。
- 第一步:配置Gradle构建脚本
打开项目根目录下的build.gradle.kts(如果用Groovy语法的build.gradle可对应调整语法),添加以下配置:
首先添加必要插件:
配置入口类,替换为你自己的NcbAdminPcApp的全限定名(带包名):plugins { kotlin("jvm") version "匹配你项目用的Kotlin版本" id("org.openjfx.javafxplugin") version "0.0.13" id("com.github.johnrengelman.shadow") version "7.1.2" application }
配置JavaFX依赖模块:application { mainClass.set("com.yourcompany.NcbAdminPcApp") }
配置fat jar打包规则,解决TornadoFX服务加载问题:javafx { version = "匹配你项目用的JavaFX版本" modules = listOf("javafx.controls", "javafx.fxml", "javafx.graphics", "javafx.base", "javafx.swing") }tasks.withType<com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar> { mergeServiceFiles() manifest { attributes["Main-Class"] = application.mainClass.get() } } - 第二步:执行打包
在IDEA右侧的Gradle任务面板中,依次找到shadow->shadowJar,双击执行。构建完成后,在项目根目录的build/libs路径下会生成名称带-all后缀的jar文件。 - 第三步:适配无Java环境的客户
如果客户电脑没有安装对应版本的JRE,可以把JRE文件夹和打包好的jar放在同一目录,新建一个启动脚本启动.bat,内容为:
把JRE文件夹、jar包、启动脚本一起压缩发给客户,双击@echo off start jre\bin\javaw.exe -jar 你的jar包名称-all.jar启动.bat即可运行。
方案2:打包为EXE安装包(正式交付)
这个方案生成的是标准Windows安装包,客户安装流程和普通软件一致,体验最好。
- 第一步:先完成方案1的所有配置,确保生成的
-all.jar文件可以正常运行。 - 第二步:使用JDK自带的jpackage工具打包为安装包
JDK14及以上版本自带jpackage工具,打开命令行进入build/libs目录,执行以下命令:
参数说明:jpackage --input . --name NCB数据录入工具 --main-jar 你的jar包名称-all.jar --main-class com.yourcompany.NcbAdminPcApp --type exe --win-dir-chooser --win-shortcut --win-menu --icon app.ico--name:填写你的软件名称--win-dir-chooser:允许用户自定义安装路径--win-shortcut:自动生成桌面快捷方式--win-menu:将软件添加到开始菜单--icon:可选参数,指定软件的ico格式图标,不需要可以删除该参数
执行完成后同目录会生成EXE安装包,直接发给客户安装即可使用,无需客户提前安装Java环境。
常见问题说明
之前你打包失败的核心原因是默认构建的Jar没有包含全部JavaFX、TornadoFX依赖,也没有合并TornadoFX运行必需的服务配置文件,按上述配置后即可解决。
内容的提问来源于stack exchange,提问作者kukumav
相关产品推荐
相关产品推荐

