javaFx常见错误

1.错误: 缺少 JavaFX 运行时组件, 需要使用该组件来运行此应用程序

1.1使用jar包导入

jar包导入之后,还需要添加VM options

打开运行配置(Run -> Edit Configurations)。
在 VM options 中添加以下参数:
--module-path /path/to/javafx-sdk-21.0.5/lib --add-modules javafx.controls,javafx.fxml
替换 /path/to/javafx-sdk-21.0.5/lib 为你的 JavaFX SDK 路径。
1.2使用maven引入依赖

引入依赖之后还要添加插件

<dependencies>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-controls</artifactId>
            <version>23.0.1</version>
        </dependency>

        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-fxml</artifactId>
            <version>23.0.1</version>
        </dependency>
    </dependencies>

    <!-- 构建项 -->
    <build>
        <!-- 添加插件 -->
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>23</source>
                    <target>23</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.openjfx</groupId>
                <artifactId>javafx-maven-plugin</artifactId>
                <version>0.0.8</version>
                <configuration>
                    <mainClass>sample.Main</mainClass>
                </configuration>
            </plugin>
        </plugins>

    </build>

2.警告: Loading FXML document with JavaFX API of version 23.0.1 by JavaFX runtime of version 18.0.2

是因为maven引入的依赖 与fxml中的javafx版本不一致 改成一样的即可

3.警告: Unsupported JavaFX configuration: classes were loaded from 'unnamed module @1db7285'

是因为缺少了module-info.java文件

module org.sample {
    requires javafx.controls;
    requires javafx.fxml;

    opens org.sample to javafx.fxml;
    exports org.sample;
}

org.sample是包名

将需要的javafx组件都requires进去就能解决

### 解决 Maven 项目中缺少 JavaFX 运行组件的方法 当遇到 `Error: JavaFX runtime components are missing, and are required to run this application` 错误,表明当前环境中缺失必要的 JavaFX 库文件[^1]。由于自 JDK 11 起 Oracle 不再默认打包 JavaFX 到标准库内[^3],因此需手动配置。 #### 添加依赖项至 POM 文件 为了使 Maven 识别并下载所需的 JavaFX 组件,在项目的 pom.xml 中加入如下代码片段: ```xml <dependencies> <!-- Other dependencies --> <dependency> <groupId>org.openjfx</groupId> <artifactId>javafx-controls</artifactId> <version>17.0.1</version> <!-- 版本号应根据实际需求调整 --> </dependency> <dependency> <groupId>org.openjfx</groupId> <artifactId>javafx-fxml</artifactId> <version>17.0.1</version> <!-- 同上保持一致 --> </dependency> <!-- 如果应用涉及其他模块如 Web 或 Media ,则继续添加相应条目 --> </dependencies> ``` #### 配置模块路径 (Module Path) 对于采用 JPMS(Java Platform Module System)结构的应用程序而言,除了上述操作外还需要确保 IDE 正确设置了 module-info.java 并指定了 requires javafx.controls 和/或其他所需模块声明[^2];同命令行启动方式也应当通过参数指定模块路径,例如: ```bash java --module-path %PATH_TO_FX% --add-modules=javafx.controls,javafx.fxml -jar your-app.jar ``` 其中 `%PATH_TO_FX%` 是指向本地安装好的 JavaFX SDK 的 lib 目录位置。 完成以上设置之后重新构建项目应该可以消除因找不到 JavaFX 类而引发的错误提示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值