You need to enable JavaScript to run this app. JDK15环境运行JavaFX项目报NoClassDefFoundError问题咨询
优惠活动
大模型
产品
解决方案
定价
更多

JDK15环境运行JavaFX项目报NoClassDefFoundError问题咨询

问题结论

该报错和FXML的xmlns版本没有任何关系,是启动命令的两处配置错误导致的,直接按下方步骤修改即可解决。


错误原因&修复方案

1. 主类全限定名配置错误

你贴出的主类代码中,包声明为package sample;,主类全限定名是sample.Main,但你的启动命令末尾指定的启动类是application.Main,系统自然找不到目标主类。

修复方法:把启动命令最后面的application.Main修改为sample.Main即可解决第一个Could not find or load main class sample.Main报错。

2. JavaFX依赖重复配置冲突

JavaFX 11及以后版本为独立模块,你已经通过--module-path指定了JavaFX SDK的库路径,同时通过--add-modules声明了需要引入的JavaFX模块,不需要再把JavaFX的jar包手动添加到-classpath参数中,重复配置会导致模块加载失败,触发NoClassDefFoundError: javafx/application/Application报错。

修复方法:把-classpath参数里所有D:\javafx\javafx-sdk-15.0.1\lib\开头的jar包引用全部删除,只保留项目编译输出路径和第三方依赖(你这里剩下的就是C:\Users\anasr\eclipse-workspace\DataStructuresAlgo1-CA1-master\bin;C:\Users\anasr\eclipse-workspace\DataStructuresAlgo1-CA1-master\lib\xstream-1.4.10.jar)即可。


补充:FXML xmlns版本调整方法

如果后续你遇到FXML解析相关的报错需要调整xmlns版本,直接修改FXML文件根节点的对应属性即可:

  • JavaFX 15对应的标准命名空间为http://javafx.com/javafx/15.0.1
  • fx前缀的命名空间固定为http://javafx.com/fxml/1
    xmlns版本不需要和JDK版本完全对齐,只要大版本匹配就能正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 19:15:01