You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gradle shadowJar打包JavaFX项目运行报错:找不到javafx.controls模块

解决JavaFX ShadowJar运行时找不到模块的问题

问题核心

你的命令里--module-path指向了JDK的lib目录,但JavaFX模块并不包含在Oracle/OpenJDK的默认安装包中,所以系统找不到javafx.controls模块。

修复步骤

  1. 确认JavaFX SDK路径
    下载对应JDK18版本的JavaFX SDK,解压到C:\Users\(ME)\Desktop\DEPLOYMENT目录下(比如命名为javafx-sdk-18.0.2),确保其lib目录下包含javafx.controls.jar等JavaFX模块文件。

  2. 修正运行命令
    将--module-path改为指向JavaFX SDK的lib目录,同时加入你需要的--add-exports选项,完整命令如下:

    java --module-path .\javafx-sdk-18.0.2\lib --add-modules=javafx.controls,javafx.fxml --add-exports javafx.base/com.sun.javafx.event=org.controlsfx.controls -jar .\kantine-all.jar
    
  3. 简化运行方式(可选)
    为避免每次输入长命令,可在部署目录下创建run.bat脚本,内容如下:

    @echo off
    java --module-path .\javafx-sdk-18.0.2\lib --add-modules=javafx.controls,javafx.fxml --add-exports javafx.base/com.sun.javafx.event=org.controlsfx.controls -jar .\kantine-all.jar
    pause
    

    双击该脚本即可直接运行程序。

额外提醒

  • 确保JavaFX SDK版本与你使用的JDK版本(18.0.2)完全一致,避免版本不兼容导致的异常。
  • 下载JavaFX SDK时要选择对应Windows平台的安装包。

内容的提问来源于stack exchange,提问作者Rocco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 16:42:44