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

IntelliJ Idea中从嵌套目录加载FXML资源失败求助

解决IntelliJ修改项目结构后FXML嵌套目录加载失败问题

问题本质

出现"Location is not set"错误,核心是编译后的classpath里找不到指定的FXML文件,根源是修改项目结构后,资源目录的识别规则或编译输出路径出现异常。

具体解决步骤

  • 确认resources目录的资源根标记
    右键项目中的resources目录,选择Mark Directory as -> Resources Root。必须让IntelliJ将其识别为资源根目录,这样编译时才会自动把目录下所有文件(包括嵌套目录里的FXML)复制到classpath对应路径下。

  • 检查编译后的资源输出
    打开项目的target/classes(或out/production/classes,取决于构建工具)目录,确认里面存在views文件夹且home-view.fxml在其中。如果没有:

    1. 打开File -> Project Structure -> Modules,选中你的模块;
    2. 切换到Sources标签,确认resources目录的Type是Resources,且Excluded列表未包含views目录;
    3. 切换到Paths标签,确保Output path和Test output path指向正确的编译输出目录。
  • 调整FXML加载路径写法
    尝试两种可靠的写法:

    1. 使用类加载器加载(从classpath根目录查找,无需开头的/):
      FXMLLoader homeSceneFXMLLoader = new FXMLLoader(SASAApplication.class.getClassLoader().getResource("views/home-view.fxml"));
      
    2. 使用相对类路径加载(若SASAApplication在项目根包下,直接写相对路径即可):
      FXMLLoader homeSceneFXMLLoader = new FXMLLoader(SASAApplication.class.getResource("views/home-view.fxml"));
      
  • 清理并重建项目
    执行Build -> Clean Project,再执行Build -> Rebuild Project,清除旧编译缓存,确保资源文件被重新复制到输出目录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 23:25:02