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

如何在Intellij中正确配置resources文件夹并调用目录下的JSON文件

Maven项目resources目录下JSON文件读取异常解决方案
  • 优先使用类加载器读取资源流,不要直接通过文件路径创建File对象:
    因为Maven项目编译后,resources目录下的文件会被拷贝到类路径根目录(target/classes),运行时工作目录和源码目录并不一致,直接写源码路径无法定位到文件。正确代码示例如下:
    // 基于当前类的类加载器读取resources/data/sample-lite.json
    InputStream inputStream = Driver.class.getClassLoader().getResourceAsStream("data/sample-lite.json");
    // 如果需要上下文类加载器可以用下面的写法,适用场景更广泛
    // InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("data/sample-lite.json");
    
    如果你确实需要获取文件对象(该方式在项目打包为jar包后会失效,仅本地开发可用),可以用:
    URL resourceUrl = Driver.class.getClassLoader().getResource("data/sample-lite.json");
    File jsonFile = new File(resourceUrl.toURI());
    
  • 检查pom.xml的资源拷贝配置:
    确认Maven的构建配置没有排除json格式的资源文件,默认配置会自动拷贝所有resources下的文件,如果有自定义资源配置,可以添加对应规则:
    <build>
      <resources>
        <resource>
          <directory>src/main/resources</directory>
          <includes>
            <include>**/*.json</include>
            <!-- 其他需要保留的资源格式可在此处追加 -->
          </includes>
        </resource>
      </resources>
    </build>
    
  • 验证资源是否正常编译:
    执行mvn compile命令后,检查target/classes目录下是否存在data/sample-lite.json文件,如果不存在可以右键IDEA的resources目录,重新选择「Mark Directory as」→「Resources Root」后再重新编译。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 10:15:05