升级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
相关产品推荐
相关产品推荐

