JDK10.0.1下JavaFX程序运行报错:相关包不存在求助
解决JDK 10.0.1下JavaFX包找不到的编译错误
这个问题我之前帮不少开发者排查过,核心原因是JDK 10中JavaFX已经采用模块化设计——它不再像JDK8那样直接暴露在默认的classpath里,而是作为独立模块存在。如果你的项目没有正确声明依赖这些模块,编译器自然找不到javafx.fxml、javafx.application这类包。下面给你几个靠谱的解决办法:
解决方案一:配置IntelliJ IDEA引用JDK自带的JavaFX模块
如果你想继续用JDK 10自带的JavaFX,按以下步骤操作:
- 打开IntelliJ IDEA,点击顶部菜单
File → Project Structure - 切换到
Libraries标签页,点击左上角的+号,选择Java - 找到你的JDK 10.0.1安装目录,进入
jmods文件夹,选中以下几个必要的JMOD文件(根据你用到的包):javafx.base.jmodjavafx.controls.jmodjavafx.fxml.jmodjavafx.graphics.jmod
- 切换到
Modules标签页,在你的项目模块的Dependencies列表里,确认刚才添加的JMOD文件已经存在。如果你的项目是模块化项目(有module-info.java),需要在该文件中添加模块声明:module your.module.name { requires javafx.controls; requires javafx.fxml; }
解决方案二:通过Maven引入OpenJFX依赖(更推荐)
这种方式更灵活,也方便后续升级JDK版本。修改你的pom.xml文件,添加以下配置:
第一步:添加JavaFX依赖
<dependencies> <!-- JavaFX核心控件依赖 --> <dependency> <groupId>org.openjfx</groupId> <artifactId>javafx-controls</artifactId> <version>10.0.1</version> </dependency> <!-- JavaFX FXML依赖 --> <dependency> <groupId>org.openjfx</groupId> <artifactId>javafx-fxml</artifactId> <version>10.0.1</version> </dependency> </dependencies>
第二步:添加编译和运行插件
<build> <plugins> <!-- 配置Maven编译插件,指定JDK版本 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> <configuration> <release>10</release> </configuration> </plugin> <!-- JavaFX Maven插件,用于运行项目 --> <plugin> <groupId>org.openjfx</groupId> <artifactId>javafx-maven-plugin</artifactId> <version>0.0.2</version> <configuration> <!-- 替换成你的主类全路径,比如com.example.Main --> <mainClass>your.main.class.path</mainClass> </configuration> </plugin> </plugins> </build>
配置完成后,重新加载Maven依赖,编译运行应该就能解决问题了。
额外检查项
- 确认IntelliJ IDEA的项目SDK配置正确:进入
Project Structure → Project,确保Project SDK选择的是JDK 10.0.1,而不是JDK 11+(JDK 11及以后Oracle JDK不再自带JavaFX) - 如果你的项目是非模块化的(没有
module-info.java),确保Maven编译时能正确识别JavaFX模块路径,上面的插件会自动处理这个问题。
内容的提问来源于stack exchange,提问作者Deus_Lysenko
相关产品推荐
相关产品推荐

