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

IDEA中Maven引入JavaFX仍报运行时组件缺失问题求助

解决Maven管理JavaFX应用时「JavaFX runtime components are missing」的问题

嘿,我来帮你搞定这个运行报错的问题!你已经用Maven引入了JavaFX依赖,也配置了JDK13,完全不需要手动下载JavaFX SDK,靠Maven本身就能解决这个问题。

核心原因

从JDK11开始,JavaFX不再捆绑在JDK安装包中了。直接用IDEA默认的「Run Program.main()」按钮启动时,普通的Java运行命令不会自动加载JavaFX的运行时组件,所以才会抛出这个错误。而你已经配置的javafx-maven-plugin就是解决这个问题的关键。

快速解决方法:用Maven的JavaFX插件启动应用

你不需要修改现有pom.xml,只要换一种启动方式就行:

  • 打开IDEA右侧的Maven面板(如果没显示,点击顶部菜单栏的「View」→「Tool Windows」→「Maven」,或者按快捷键Alt+F11)
  • 展开你的项目「clockAlarm」→「Plugins」→「javafx」
  • 找到并双击「javafx:run」,这样就能正常启动你的JavaFX应用了

(可选)让IDEA的Run按钮也能正常运行

如果你习惯用IDEA的Run按钮,可以调整pom.xml并配置Run选项:

  1. 先完善pom.xml的配置,添加编译插件确保JDK版本匹配,修改后的代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.example</groupId>
  <artifactId>clockAlarm</artifactId>
  <version>1.0-SNAPSHOT</version>
  <url>http://maven.apache.org</url>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>13</maven.compiler.source>
    <maven.compiler.target>13</maven.compiler.target>
  </properties>
  <dependencies>
    <dependency>
      <groupId>org.openjfx</groupId>
      <artifactId>javafx-controls</artifactId>
      <version>13</version>
    </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.1</version>
        <configuration>
          <source>13</source>
          <target>13</target>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-maven-plugin</artifactId>
        <version>0.0.5</version>
        <configuration>
          <mainClass>Program</mainClass>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>
  1. 在IDEA的Run配置里,新建一个「Maven」类型的配置,在「Command line」输入框中填写javafx:run
  2. 以后点击Run按钮时,就会自动执行这个Maven命令,正常启动应用

为什么这样能解决问题?

javafx-maven-plugin会自动帮你处理所有繁琐的细节:它会把Maven依赖中下载好的JavaFX组件添加到JVM的模块路径中,并且自动生成必要的VM参数(比如--module-path和--add-modules),确保JVM能找到并加载JavaFX的运行时组件,完全不需要你手动配置SDK路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 21:12:46