如何在IDEA中将JavaFX项目打包EXE文件


### 文章目录

  • [@TOC(文章目录)](#文章目录 @TOC 一、准备项目 1. 必备工具与软件 JavaFX SDK 11.0.2 ‌Launch4j‌ openjdk-24.0.2+12-54 生成的jar包 2. pom.xml配置 二、手动转换 1、转换前配置 launch4j配置 2、将jar转换成exe 三、测试)
  • [一、准备项目](#文章目录 @TOC 一、准备项目 1. 必备工具与软件 JavaFX SDK 11.0.2 ‌Launch4j‌ openjdk-24.0.2+12-54 生成的jar包 2. pom.xml配置 二、手动转换 1、转换前配置 launch4j配置 2、将jar转换成exe 三、测试)
  • [1. 必备工具与软件](#文章目录 @TOC 一、准备项目 1. 必备工具与软件 JavaFX SDK 11.0.2 ‌Launch4j‌ openjdk-24.0.2+12-54 生成的jar包 2. pom.xml配置 二、手动转换 1、转换前配置 launch4j配置 2、将jar转换成exe 三、测试)
  • [JavaFX SDK 11.0.2](#文章目录 @TOC 一、准备项目 1. 必备工具与软件 JavaFX SDK 11.0.2 ‌Launch4j‌ openjdk-24.0.2+12-54 生成的jar包 2. pom.xml配置 二、手动转换 1、转换前配置 launch4j配置 2、将jar转换成exe 三、测试)
  • [‌Launch4j‌](#文章目录 @TOC 一、准备项目 1. 必备工具与软件 JavaFX SDK 11.0.2 ‌Launch4j‌ openjdk-24.0.2+12-54 生成的jar包 2. pom.xml配置 二、手动转换 1、转换前配置 launch4j配置 2、将jar转换成exe 三、测试)
  • [openjdk-24.0.2+12-54](#文章目录 @TOC 一、准备项目 1. 必备工具与软件 JavaFX SDK 11.0.2 ‌Launch4j‌ openjdk-24.0.2+12-54 生成的jar包 2. pom.xml配置 二、手动转换 1、转换前配置 launch4j配置 2、将jar转换成exe 三、测试)
  • [生成的jar包](#文章目录 @TOC 一、准备项目 1. 必备工具与软件 JavaFX SDK 11.0.2 ‌Launch4j‌ openjdk-24.0.2+12-54 生成的jar包 2. pom.xml配置 二、手动转换 1、转换前配置 launch4j配置 2、将jar转换成exe 三、测试)
  • [2. pom.xml配置](#文章目录 @TOC 一、准备项目 1. 必备工具与软件 JavaFX SDK 11.0.2 ‌Launch4j‌ openjdk-24.0.2+12-54 生成的jar包 2. pom.xml配置 二、手动转换 1、转换前配置 launch4j配置 2、将jar转换成exe 三、测试)
  • [二、手动转换](#文章目录 @TOC 一、准备项目 1. 必备工具与软件 JavaFX SDK 11.0.2 ‌Launch4j‌ openjdk-24.0.2+12-54 生成的jar包 2. pom.xml配置 二、手动转换 1、转换前配置 launch4j配置 2、将jar转换成exe 三、测试)
  • [1、转换前配置](#文章目录 @TOC 一、准备项目 1. 必备工具与软件 JavaFX SDK 11.0.2 ‌Launch4j‌ openjdk-24.0.2+12-54 生成的jar包 2. pom.xml配置 二、手动转换 1、转换前配置 launch4j配置 2、将jar转换成exe 三、测试)
  • [launch4j配置](#文章目录 @TOC 一、准备项目 1. 必备工具与软件 JavaFX SDK 11.0.2 ‌Launch4j‌ openjdk-24.0.2+12-54 生成的jar包 2. pom.xml配置 二、手动转换 1、转换前配置 launch4j配置 2、将jar转换成exe 三、测试)
  • [2、将jar转换成exe](#文章目录 @TOC 一、准备项目 1. 必备工具与软件 JavaFX SDK 11.0.2 ‌Launch4j‌ openjdk-24.0.2+12-54 生成的jar包 2. pom.xml配置 二、手动转换 1、转换前配置 launch4j配置 2、将jar转换成exe 三、测试)
  • [三、测试](#文章目录 @TOC 一、准备项目 1. 必备工具与软件 JavaFX SDK 11.0.2 ‌Launch4j‌ openjdk-24.0.2+12-54 生成的jar包 2. pom.xml配置 二、手动转换 1、转换前配置 launch4j配置 2、将jar转换成exe 三、测试)

一、准备项目

1. 必备工具与软件

JavaFX SDK 11.0.2

  • 11.0.2 是一个具体的版本,你当然可以使用其它的版本,但要注意与其它组件的兼容性。JavaFX SDK 11.0.2是一个用于开发JavaFX应用程序的工具包,适用于Java 11及更高版本。是一个独立模块化组件,需要单独下载和配置才能使用。‌

  • 在 Windows 上,解压后直接访问 lib 目录即可使用库文件。如下图中为JavaFX SDK 11.0.2主目录下资源。

‌Launch4j‌

  • Launch4j‌是一个用于将 Java 应用程序打包成独立的 Windows 原生可执行文件(.exe)的开源工具,从而实现跨平台部署。

openjdk-24.0.2+12-54

  • ‌OpenJDK是Java平台的开源开发工具包‌,也是你的java项目运行环境。

生成的jar包

2. pom.xml配置

  • ‌pom.xml 是 Maven 项目的核心配置文件‌,采用 XML 格式定义项目元数据、依赖关系和构建规则,用于自动化 Java项目的构建、依赖管理和打包。‌‌
    不同的项目,pom.xml是不同的,这里只是本文测试项目所用的pom.xml,供参考。


    4.0.0
    lotteryfx
    Lottery
    1.0
    Lottery

    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <junit.version>5.10.2</junit.version>

    复制代码
    <dependencies>
      <dependency>
        <groupId>javax.activation</groupId>
        <artifactId>activation</artifactId>
        <version>1.1.1</version>
      </dependency>
      <dependency>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-controls</artifactId>
        <version>17.0.6</version>
      </dependency>
      <dependency>
        <groupId>org.controlsfx</groupId>
        <artifactId>controlsfx</artifactId>
        <version>11.2.1</version>
      </dependency>
      <dependency>
        <groupId>com.dlsc.formsfx</groupId>
        <artifactId>formsfx-core</artifactId>
        <version>11.6.0</version>
        <exclusions>
          <exclusion>
            <groupId>org.openjfx</groupId>
            <artifactId>*</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>net.synedra</groupId>
        <artifactId>validatorfx</artifactId>
        <version>0.5.0</version>
        <exclusions>
          <exclusion>
            <groupId>org.openjfx</groupId>
            <artifactId>*</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.kordamp.ikonli</groupId>
        <artifactId>ikonli-javafx</artifactId>
        <version>12.3.1</version>
      </dependency>
      <dependency>
      <groupId>org.kordamp.bootstrapfx</groupId>
      <artifactId>bootstrapfx-core</artifactId>
      <version>0.4.0</version>
    </dependency>
      <dependency>
      <groupId>eu.hansolo</groupId>
      <artifactId>tilesfx</artifactId>
      <version>21.0.3</version>
      <exclusions>
        <exclusion>
          <groupId>org.openjfx</groupId>
          <artifactId>*</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
      <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-api</artifactId>
        <version>${junit.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-engine</artifactId>
        <version>${junit.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.17.1</version>
      </dependency>
      <!-- SLF4J API -->
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.30</version>
      </dependency>
    </dependencies>
    
    <build>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.13.0</version>
          <configuration>
            <source>24</source>
            <target>24</target>
          </configuration>
        </plugin>
      </plugins>
    </build>

二、手动转换

1、转换前配置

  • 当上述介绍的工具与软件准备齐全后,就可以进入转换环节了,首先是软件配置。

launch4j配置

打开launch4j目录,打开目录下的launch4j.exe文件。如下图。

  • 打开launch4j.exe后的几个关键配置步骤。
  • basic选项卡下的Output file中选择你要生成的exe文件名及路径。
  • basic选项卡下的jar中选择你的jar包。
  • basic选项卡下的Icon中选择你要生成的exe文件的显示图标,这里是可选项,不选择任何文件不会影响转换。
  • Header选项卡下的Header type中选择GUI项。

  • JRE选项卡下的JRE paths下填入你的openjdk主目录下的bin路径。 注意这里的"./"表示当前路径。

  • -JRE选项卡下的JVM options下填入如下内容。 注意这里的"."表示当前路径。javafx-sdk-11-0-2\根据你的时间路径与版本填写。

    module-path ".\javafx-sdk-11-0-2\lib" --add-modules javafx.controls,javafx.fxml

  • launch4j中的其它选项可选择默认

2、将jar转换成exe

上述配置完成后,点击下图中的图标。

弹出保存配置文件的图标,这个xml的配置文件保存后,下一次可直接打开使用,不需要在重新配置。

  • 点击保存后,launch4j会自动将jar包转换成exe文件,这时候,你的目标文件夹中,会生成一个新的exe文件

三、测试

  • 将新生成的exe文件同上述openjdk-24.0.2+12-54,JavaFX SDK 11.0.2放在同一个文件夹下,这是关键步骤
  • 这样,在没有安装java环境的系统中,你生成的exe就可以正常打开了,注意上一步不能省略。
相关推荐
亦暖筑序4 小时前
Java 8老系统AI Workflow实战:把一次性AI对话升级成可恢复工作流
java·后端
敲代码的彭于晏5 小时前
Bean 生命周期完全图解:前端同学也能看懂的 Spring 核心机制
java·前端·后端
plainGeekDev6 小时前
ButterKnife → ViewBinding
android·java·kotlin
像我这样帅的人丶你还1 天前
Java 后端详解(四):分页与搜索
java·javascript·后端
她的男孩1 天前
数据权限为什么不能只靠注解?Forge 的 Mapper 层 SQL 改写源码拆解
java·后端·架构
tntxia1 天前
Mybatis的日志输入
java
亦暖筑序1 天前
Java 8老系统Browser Agent实战:三层拦截把AI操作后台变成可审计流程
java·后端·设计模式
用户298698530141 天前
Java 实现 Word 文档加密与权限解除
java·后端
Yeats_Liao1 天前
14:Servlet中的页面跳转-Java Web
java·后端·架构
未秃头的程序猿1 天前
告别"if-else地狱"!Java 21模式匹配,代码优雅了10倍
java·后端·面试