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

IntelliJ运行Spring Boot+JavaFX Maven项目提示缺JavaFX运行时组件怎么办

可行解决方案(无需大幅修改代码)

方案1:修改启动入口绕开JavaFX模块检查(优先推荐,零配置改动)

问题根源是JavaFX 11+对直接继承javafx.application.Application的启动类,会强制校验模块路径下的JavaFX组件,而非模块化项目中Maven引入的JavaFX依赖默认在classpath中,触发校验失败。你只需要新增一个普通Java类作为启动入口,不要继承Application类即可:

package com.example.demofx;

import javafx.application.Application;
import javafx.stage.Stage;
import org.springframework.boot.autoconfigure.SpringBootApplication;

// 原有的Spring Boot+JavaFX启动类保留所有逻辑,只移除main方法
@SpringBootApplication
public class Starter extends Application {
    @Override
    public void start(Stage stage) throws Exception {
        // 原有JavaFX初始化逻辑保持不变
    }
}

// 新增独立启动类,不要继承任何类
public class AppLauncher {
    public static void main(String[] args) {
        // 按原有逻辑启动JavaFX即可
        Application.launch(Starter.class, args);
    }
}

修改后在IntelliJ中直接右键AppLauncher类运行即可,无需修改pom.xml或任何其他配置,也不会影响原有fat jar的构建逻辑。

方案2:修改IntelliJ运行配置(无需修改代码)

如果你不想调整启动类结构,直接修改当前运行配置的VM参数即可:

  1. 点击IntelliJ右上角运行配置的下拉框,选择Edit Configurations
  2. 找到你的项目启动配置,在VM options输入框中添加以下参数:
--add-modules javafx.controls,javafx.fxml

如果提示反射访问报错,可以额外补充导出参数:

--add-modules javafx.controls,javafx.fxml --add-exports javafx.graphics/com.sun.javafx.application=ALL-UNNAMED
  1. 保存配置后重新运行即可。

方案3:绑定Maven的javafx:run命令到IntelliJ调试(兼容原有配置)

如果需要保留javafx-maven-plugin的配置,也可以直接在IntelliJ中给Maven命令开启调试模式:

  1. 打开IntelliJ右侧的Maven面板,找到Plugins->javafx->javafx:run
  2. 右键javafx:run,选择Modify Run Configuration
  3. 在Runner标签页勾选Debug选项,保存后双击运行即可正常触发断点调试,不需要改任何代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 03:45:03