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

JavaFX项目启动报Exception in Application start method错误求助

解决JavaFX项目中的Exception in Application start method错误

错误根源

这个NoSuchMethodError的核心原因是依赖版本不兼容:

  • 你使用的JMetro 11.6.16是为JavaFX 11开发的,但项目依赖的JavaFX是17.0.2。JavaFX 17对内部API(比如com.sun.javafx.scene.NodeHelper类的方法)做了修改,导致JMetro调用的方法不存在。
  • 同时运行环境是Java 11,却搭配了JavaFX 17,JavaFX版本与JDK版本的兼容性不匹配(JavaFX 17建议搭配JDK 17+)。

解决方案

方案一:统一使用JavaFX 11 + JMetro 11.x(适配Java 11)

将JavaFX版本降级到11.x,与JMetro、Java 11保持版本一致:

  1. 修改Maven中的JavaFX依赖:
<dependency>
    <groupId>org.openjfx</groupId>
    <artifactId>javafx-controls</artifactId>
    <version>11.0.2</version>
</dependency>
<dependency>
    <groupId>org.openjfx</groupId>
    <artifactId>javafx-fxml</artifactId>
    <version>11.0.2</version>
</dependency>
  1. 确认IntelliJ的运行环境配置:
    • 打开File > Project Structure > Project,将Project SDK设置为Java 11
    • 进入File > Settings > Build, Execution, Deployment > Build Tools > Maven > Runner,将JRE设置为Java 11
  2. 执行命令重新构建运行:
mvn clean javafx:run

方案二:升级到Java 17 + JavaFX 17 + 适配版本的JMetro

如果想保留JavaFX 17,需要同步升级JDK和JMetro版本:

  1. 将电脑的JDK切换到Java 17,并在IntelliJ中更新Project SDK和Maven Runner的JRE为Java 17
  2. 修改JMetro依赖为适配JavaFX 17的版本:
<dependency>
    <groupId>org.jfxtras</groupId>
    <artifactId>jmetro</artifactId>
    <version>17.0.11</version>
    <type>pom</type>
</dependency>
  1. 保持JavaFX 17.0.2的依赖不变,执行命令重新构建运行:
mvn clean javafx:run

额外检查项

  • 清理本地Maven仓库中可能存在的冲突依赖:删除~/.m2/repository/org/openjfx和~/.m2/repository/org/jfxtras目录后,重新下载依赖
  • 检查IntelliJ的Run Configuration,确保没有手动指定错误的JDK或JavaFX启动参数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 11:09:51