JavaFX Scene Builde/javafx-gradle-plugin 打包成 windows exe 安装程序:实践精华教程

本文详细介绍了如何使用Gradle构建工具搭建JavaFX图形界面开发环境,涵盖JavaFX框架、Spring容器配置、logback日志输出及打包成Windows安装程序等核心内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本章讲解怎么用 gradle 搭建一个 java fx 开发环境。

使用到的核心技术和包

  • Java Fx 图形界面框架

  • JavaFX Scene Builder 2.0 :帮助我们可视化布局

  • logback 输出日志

  • spring-context 和 spring-beans :带给我们 IOC 容器管理功能

    除了 Java Fx 初始化的类,其他我们自己的业务逻辑都可以使用 spring 的方式实现;

    这里没有使用 使用 spring web 这种的框架,作为一个图形界面,我们的测量是主动拉取服务端的数据。

    如果想要服务器主动拉取客户端:或许可以考虑使用 netty 之类的暴露接口?这里不深入研究了

  • javafx-gradle-plugin:为我们打包成 windows 执行程序

    ​ 使用它打成 exe 安装包,还需要本机安装 innosetup-5.6.1.exe ,并添加到 path 环境变量中

  • gradle 4.8:用于项目的打包依赖

文章有点多,不想搬运了,全文文章请去我的 GitHub 观看:https://zq99299.github.io/note-book/posts/java/javafx/

内容包括

  • java fx 图形界面开发
  • 配置idea开发环境
  • java fx Hello Word
    • 设计一个U界面
    • 在项目中编写对应的 contro‖l
    • 运行这个U
    • 给按钮增加交互事件
  • 一些通用的点讲解
    • 窗口显示不全
    • 自适应窗囗
    • 多个窗口切换
    • 程序最小化到托盘
    • 在项目中使用 spring 容器配置
    • logback 动态日志路径
    • 如何实现一个界面上显示日志信息的功
    • 非 UI 线程操作 UI 元素报错
    • 打包成 windows exe 安装程序
<think>好的,用户想配置JavaFX的模块路径并添加所需的javafx.controls和javafx.fxml模块。我需要先理解他们的问题所在。根据提供的引用,用户可能在运行JavaFX应用时遇到了模块找不到或无法访问的错误,比如引用[4]提到的Module javafx.controls not found,或者引用[3]中的IllegalAccessException。 首先,用户需要正确设置模块路径。根据引用[1]和[2],正确的模块路径应该指向JavaFX SDK的lib目录。例如,在命令行中使用--module-path参数指定路径。同时,使用--add-modules来添加需要的模块,如javafx.controls和javafx.fxml。 然后,可能需要处理模块访问权限的问题。比如引用[3]提到需要将包opens给javafx.fxml模块,这涉及到在module-info.java中添加opens语句。如果用户没有正确配置模块信息,可能导致类无法访问的异常。 接下来,用户可能使用不同的构建工具,比如Maven或Gradle,这时候配置方式会有所不同。需要分别说明如何在这些工具中添加依赖和配置模块参数。例如,在Maven的pom.xml中添加JavaFX依赖,并确保作用域为compile,或者使用插件配置命令行参数。 另外,用户可能在IDE中配置,比如Eclipse或IntelliJ。需要指导他们在IDE中设置VM参数,包括模块路径和添加模块。例如在Eclipse的Run Configurations中添加--module-path和--add-modules参数。 还需要提醒用户检查Java版本,因为JavaFX从11开始需要单独下载,不再随JDK一起提供。确保他们使用的是Java 11或更高版本,并且已经正确安装了JavaFX SDK。 最后,可能会遇到FXML文件加载的问题,如引用[5]提到的LoadException。这时候需要确认FXML文件的路径是否正确,以及是否在module-info.java中正确开放了包权限。 总结步骤:设置模块路径、添加模块、处理模块访问权限、构建工具配置、IDE配置、检查Java版本和FXML路径。需要分步骤详细说明,并给出示例代码或命令,确保用户能逐步操作。</think>### 如何正确配置 JavaFX 模块路径和添加所需模块? #### 1. 设置模块路径和添加模块(命令行方式) 在编译或运行 JavaFX 应用程序时,需通过以下参数指定模块路径和依赖模块: ```bash javac --module-path "C:\Program Files\Java\javafx-sdk-21\lib" \ --add-modules javafx.controls,javafx.fxml \ YourApp.java java --module-path "C:\Program Files\Java\javafx-sdk-21\lib" \ --add-modules javafx.controls,javafx.fxml \ YourApp ``` **说明**: - `--module-path`:指向 JavaFX SDK 的 `lib` 目录路径(需根据实际安装位置修改)[^1][^2] - `--add-modules`:明确声明依赖的 JavaFX 模块,如 `javafx.controls`(UI控件)和 `javafx.fxml`(FXML支持)[^4] --- #### 2. 模块化应用程序的额外配置(`module-info.java`) 若项目采用模块化结构,需在 `module-info.java` 中添加以下配置: ```java module your.module.name { requires javafx.controls; requires javafx.fxml; opens com.example.yourpackage to javafx.fxml; // 允许FXML访问指定包内的类[^3] } ``` **说明**: - `opens` 语句用于解决因模块封装导致的反射访问错误(如 `IllegalAccessException`)[^3] - 非模块化项目可跳过此步骤,但需确保所有依赖模块已通过命令行添加 --- #### 3. IDE 配置(以 Eclipse 为例) 1. **配置 JavaFX SDK 路径**: - 右键项目 → `Build Path` → `Configure Build Path` - 在 `Libraries` 标签页添加 JavaFX SDK 的 `lib` 目录 2. **添加 VM 参数**: - 右键主类 → `Run As` → `Run Configurations` - 在 `Arguments` → `VM arguments` 输入: ```bash --module-path "C:\Program Files\Java\javafx-sdk-21\lib" \ --add-modules javafx.controls,javafx.fxml ``` --- #### 4. 构建工具配置(Maven/Gradle) **Maven**(在 `pom.xml` 中添加): ```xml <dependency> <groupId>org.openjfx</groupId> <artifactId>javafx-controls</artifactId> <version>21</version> </dependency> <dependency> <groupId>org.openjfx</groupId> <artifactId>javafx-fxml</artifactId> <version>21</version> </dependency> ``` **Gradle**(在 `build.gradle` 中添加): ```groovy plugins { id 'application' id 'org.openjfx.javafxplugin' version '0.1.0' } javafx { version = "21" modules = [ 'javafx.controls', 'javafx.fxml' ] } ``` --- #### 常见问题排查 1. **模块未找到错误**: - 检查模块路径是否包含完整的 JavaFX SDK `lib` 目录 - 确认模块名称拼写正确(区分大小写) 2. **FXML 文件加载失败**: - 确保 `opens` 语句开放了包含 FXML 控制器的包[^3][^5] - 使用绝对路径加载 FXML 文件(如 `/com/example/view.fxml`) --- ### 相关问题 1. 如何解决 JavaFX 模块化应用中的 `IllegalAccessException`? 2. 在非模块化项目中如何配置 JavaFX 依赖? 3. 如何通过 Maven 插件自动添加 JavaFX 运行时参数?
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值