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

Eclipse运行JavaFx项目报错找不到或无法加载主类Sample.Main如何解决?

问题诱因
  • Java 11及以上版本已将JavaFX从标准JDK中移除,即便编译期构建路径配置了JavaFX库,运行时默认也不会将JavaFX类加载到执行路径中,是该问题的最高发诱因
  • Eclipse运行配置未同步构建路径的JavaFX依赖,运行时类路径缺失对应库文件
  • 所用JavaFX库的版本、架构(x86/x64/ARM)与当前JDK不匹配,导致类加载失败
  • 若项目启用了Java模块系统(存在module-info.java),未正确声明JavaFX模块依赖、未开放对应包的反射权限也会触发该错误
解决方法

方案1:添加运行时VM参数(通用解决方案)

  1. 右键项目依次选择Run As -> Run Configurations
  2. 找到当前运行Sample.Main的配置项,切换到Arguments标签
  3. 在VM arguments输入框中添加如下参数,将/path/to/javafx-sdk/lib替换为你本地JavaFX SDK的lib目录实际路径:
--module-path /path/to/javafx-sdk/lib --add-modules javafx.controls,javafx.fxml,javafx.graphics
  1. 点击Apply保存后重新运行项目即可

方案2:修正运行配置类路径

  1. 进入运行配置页后切换到Classpath标签
  2. 展开User Entries项,确认JavaFX相关jar包已被包含,若缺失则点击Add External JARs手动导入JavaFX SDK lib目录下的所有jar包
  3. 保存配置后重新运行

方案3:补全模块系统配置(仅适用于带module-info.java的项目)

打开项目根目录的module-info.java文件,添加如下配置(替换其中的模块名即可):

module your.project.module.name {
    requires javafx.controls;
    requires javafx.fxml;
    requires javafx.graphics;
    opens Sample to javafx.fxml;
    exports Sample;
}

opens Sample to javafx.fxml用于给FXML开放Sample包的反射访问权限,否则加载FXML时会抛出权限异常。

方案4:验证依赖兼容性

检查本地JavaFX SDK的版本、架构与所用JDK完全匹配,避免架构不兼容导致的类加载失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 03:39:04