Loading...

JavaFx打包成exe

前言

JavaFX 是一个开源的下一代客户端应用平台,适用于基于Java构建的桌面、移动端和嵌入式系统。 它是许多个人和公司的共同努力的成果,目的是为开发丰富的客户端应用提供一个现代、高效、功能齐全的工具包。官方文档: https://openjfx.io/openjfx-docs/#introduction

而我最近使用JavaFx搞了一个小工具,主要是对局域网内其他设备的搜寻和展示,目前已开源在gitee

重点:本文将介绍如何将JavaFx工程打包为.exe文件。如果是jdk14以下打包exe请参考使用exe4j进行打包。

exe4j打包jar请参考: https://zhuanlan.zhihu.com/p/517738168?utm_id=0

创建JavaFx项目

首先使用idea新建一个javafx的项目,填写好相关信息

202311061611266299.webp

接着下一步到选择GUI控件步骤

20231106161230864.webp

随后点击CREATE创建,就可以编写自己的代码了。构建图形GUI这里推荐使用Scene Builder,可直接拖拽UI库中的组件进行页面的构建,有兴趣的可以自行百度一下安装

可以看到的是idea给我们自动添加好了打包的插件,方便后续打包

202311061614244604.webp

使用javafx:jlink构建

假设这里你的程序已经编写完成并且本地测试没问题后,我们点击右侧栏的Maven菜单->Plugins->javafx->javafx:jlink

202311061619136316.webp

打包好后会在target里生成一个app.bat批处理文件,路径target/app/bin/app.bat。可以直接双击运行

202311061621365501.webp

这还不够,本文是要将这个app.bat打包为.exe,这里使用jpackage进行打包(注意:jpackage 是在jdk14正式引入的打包工具)

使用jpackage打包成exe

首先使用cmd到达项目的根目录,也就是target所在的根目录,随后执行以下命令:

jpackage --name LANGadget --type app-image -m com.lan.findlandev/com.lan.findlandev.LANApplication --runtime-image .\target\app\ --icon C:\Users\devse\Downloads\LANGadget.ico
  • --type -t :打包类型,可取值app-image、exe、msi
  • --name -n:打包之后的应用或包名称
  • --module -m:格式<module name>[/<main class>],模块名/main,不会写可以直接复制pom.xml中的mainClass标签内容。
  • --runtime-image:运行镜像的未知,上一个命令打包的文件夹。
  • --icon:exe的icon图标

按回车执行

202311061631013102.webp

随后就会生成LANGadget目录,目录下就会有这个exe了,注意:LANGadget.exe不可单独拿出来运行,这里其实是基本把整个jre打包进来了,在runtime目录下,由于我们是JavaFx程序,必须依赖jvm运行。

202311061632558943.webp

到这里其实已经完成整个打包流程了,将以上LANGadget目录压缩成一个zip即可做成绿色版。如若想做成可安装的程序的话,请看下一步骤

使用inno setup制作可安装程序

第一步:到官网下载innosetup-6.2.2.exe并安装

202311071444522085.webp

注意:innosetup默认的是英文安装,简体中文安装需要自己去官网下载中文语言包,具体方法如下:

1,到 https://jrsoftware.org/files/istrans/ 找到translations,点击然后下拉找到简体中文语言包Chinese (Simplified)。

202311071510057692.webp

我们将这些脚本代码复制下来,创建一个ChineseSimplified.isl文件,把脚本代码放进去

202311071511407848.webp

2,找到Inno Setup安装文件,进入Languages子文件夹,将刚刚的ChineseSimplified.isl文件复制进去注意要把编码格式设为UTF-8或者UTF-8-BOM,然后到以下打包步骤的第八步中设置安装的语言就可以选择简体中文了。

202311071514036138.webp

第二步:打开安装好的 Inno Setup Compiler 点击File->New,点击Next,如下图:

202311071448338567.webp

第三步:设置应用程序名称和版本号后点击Next(注意是必填)

202311071452044221.webp

第四步:设置文件夹名称,一般保留默认就行,然后继续Next

202311071454056569.webp

第五步:设置exe主文件所在的目录,我们选择刚刚用jpackage打包好的exe和依赖文件,然后Next

202311071538242780.webp

第六步:继续点击Next

202311071501366114.webp

第七步:这里是填写一些许可文件之类的,直接留空,然后一直点Next

202311071504031331.webp

第七步:点Next

202311071504388050.webp

第八步:设置安装的语言,这里把简体中文勾上

202311071515556527.webp

第九步:设置安装包基本信息,设置好后点击Next,一直到Finish

202311071521363465.webp

第十步:到最后会弹出一个窗口告诉你是否立即执行脚本?一直点击“是”

202311071523026328.webp

第十一步:提示让我们保存这个 .iss 文件以便下次可直接执行

image.png

随后执行脚本产生如图:

202311071525506713.webp

即可在刚刚安装包输出的路径中看到我们的exe安装包了

image.png

结尾

到这里我们整个打包exe流程就结束啦!!!

0

回到顶部