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

升级Eclipse与Java后Maven依赖报错:找不到javafx-controls jar包

解决JavaFX Maven依赖找不到${javafx.platform}的问题

问题原因

JavaFX依赖分Windows/macOS/Linux平台发布,Maven需明确指定对应平台的classifier,或通过插件自动处理。当前pom.xml中JavaFX依赖未指定平台,且使用的javafx-maven-plugin版本(0.0.8)过旧,无法自动解析${javafx.platform}变量,导致Maven无法定位对应依赖包。

解决方案

方案1:为JavaFX依赖添加平台Classifier

直接在依赖中指定Windows平台的classifier:

<dependency>
    <groupId>org.openjfx</groupId>
    <artifactId>javafx-controls</artifactId>
    <version>22.0.1</version>
    <classifier>win</classifier>
</dependency>
<dependency>
    <groupId>org.openjfx</groupId>
    <artifactId>javafx-fxml</artifactId>
    <version>22.0.1</version>
    <classifier>win</classifier>
</dependency>

若需跨平台编译,可添加多平台classifier,或用Maven profiles区分不同操作系统。

方案2:升级javafx-maven-plugin到最新版本

旧版插件(0.0.8)不兼容Java 21与JavaFX 22,升级至最新版本(如0.1.0)后,插件会自动处理平台依赖解析:

<plugin>
    <groupId>org.openjfx</groupId>
    <artifactId>javafx-maven-plugin</artifactId>
    <version>0.1.0</version>
    <executions>
        <execution>
            <id>default-cli</id>
            <configuration>
                <mainClass>root.osmart_mv.App</mainClass>
            </configuration>
        </execution>
    </executions>
</plugin>

方案3:在pom.xml中定义javafx.platform属性

在properties节点添加平台属性,指定当前系统:

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>21</maven.compiler.source>
    <maven.compiler.target>21</maven.compiler.target>
    <javafx.platform>win</javafx.platform>
</properties>

Windows填win,macOS填mac,Linux填linux。

后续操作

修改完成后执行Maven命令刷新依赖:

mvn clean install -U

在Eclipse中右键项目 → Maven → Update Project,勾选"Force Update of Snapshots/Releases"后确认。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 13:03:10