IDEA、JDK17、OpenJFX(javaFX)快速开发桌面应用,并打包成exe可执行文件

个人从事java开发很多年,但一直都是在web应用上玩来玩去,心血来潮,猛然想到像DBeaver、finalshell、Behinder(冰蝎)、BurpSuite、Jmeter、IDEA等等这类比较知名软件都是使用java语言编写的桌面应用,那么java是否有更好的桌面应用开发的框架呢?

准备环境

  1. IDEA
  2. JDK17
  3. Windows
  4. Scene Builder

快速搭建

打开IDEA点击File-> new -> Project
IDEA、JDK17、OpenJFX(javaFX)快速开发桌面应用,并打包成exe可执行文件_第1张图片
左边选择JavaFX,右边配置环境,个人偏好于JDK17,号称是目前(2022)最快的LTS版本,且免费。
IDEA、JDK17、OpenJFX(javaFX)快速开发桌面应用,并打包成exe可执行文件_第2张图片
这个是开源架构,需要的可以直接勾选
IDEA、JDK17、OpenJFX(javaFX)快速开发桌面应用,并打包成exe可执行文件_第3张图片
IDEA、JDK17、OpenJFX(javaFX)快速开发桌面应用,并打包成exe可执行文件_第4张图片

创建成功后会有一个hello-view.fxml文件,这就是一个Scene(场景),可以使用Scene Builder打开。
IDEA、JDK17、OpenJFX(javaFX)快速开发桌面应用,并打包成exe可执行文件_第5张图片
Scene Builder是一个官方推荐的绘图软件,可以绘制窗口样式。这相对于是awt、Swing纯代码绘图的架构是一种进步。

运行程序方式很多,直接敲命令、运行Main方法、双击右边javafx:run都可以。本文使用的是命令,进入根目录下

mvnw clean javafx:run

这样可以顺便校验了你本地环境,方便下面打包成exe文件使用
IDEA、JDK17、OpenJFX(javaFX)快速开发桌面应用,并打包成exe可执行文件_第6张图片
此时可以看到已经报错
IDEA、JDK17、OpenJFX(javaFX)快速开发桌面应用,并打包成exe可执行文件_第7张图片
原因是我系统变量jdk版本不是17.配置jdk17后,重启IDEA再次运行命令
IDEA、JDK17、OpenJFX(javaFX)快速开发桌面应用,并打包成exe可执行文件_第8张图片
执行成功。下面打包,直接运行

mvnw clean javafx:jlink

IDEA、JDK17、OpenJFX(javaFX)快速开发桌面应用,并打包成exe可执行文件_第9张图片
此时已经生成app文件夹,还贴心的生成了app.zip压缩包。其中包含了jre,总共大小才70多M大小。应该是自动剔除了不需要用到的包或类。
IDEA、JDK17、OpenJFX(javaFX)快速开发桌面应用,并打包成exe可执行文件_第10张图片
进入bin目录下运行app.bat
IDEA、JDK17、OpenJFX(javaFX)快速开发桌面应用,并打包成exe可执行文件_第11张图片
可以看到编写的窗口,但这并不是我们想要的exe,而且可以看到还拖着一个命令提示符。
下面我们来转化成exe执行文件。在根目录下运行

jpackage --name test --type app-image  -m com.example.openjfx17/com.example.openjfx17.HelloApplication  --runtime-image .\target\app\
  • jpackage是从jdk14之后自带的打包工具。
  • –type -t :打包类型,可取值app-image、exe、msi
  • –name -n:打包之后的应用或包名称
  • –module -m:格式[/
    ],模块名/main,不会写可以直接复制pom.xml中的mainClass标签内容。
  • –runtime-image:运行镜像的未知,上一个命令打包的文件夹。

IDEA、JDK17、OpenJFX(javaFX)快速开发桌面应用,并打包成exe可执行文件_第12张图片
进入文件夹,运行test.exe执行命令。
IDEA、JDK17、OpenJFX(javaFX)快速开发桌面应用,并打包成exe可执行文件_第13张图片
运行成功,而且没有之前命令行提示符。大功告成!

你可能感兴趣的:(技术分享,windows,java,intellij-idea,java,maven)