【发布时间】:2016-07-21 12:51:48
【问题描述】:
我已经不知所措,试图弄清楚为什么我无法从 Gradle 项目的资源文件夹中加载文件。
我的项目具有以下文件夹结构:
/src
/main
/java
/datasets
/IrisDataReader.java
/resources
/datasets
/Iris.csv
/test
/java
/resources
/datasets
/Iris.csv
在我的 test/java 目录中,我正在运行一些使用 IrisDataReader 将 Iris.csv 读入程序的测试。
以下产生空指针异常。
InputStream inputStream = IrisDataReader.class.getResourceAsStream("/datasets/Iris.csv");
构建后,Gradle 会创建以下文件结构
/build
/classes
/main
/datasets
/IrisDataReader.class
/resources
/main
/datasets
/Iris.csv
这是奇怪的部分: 如果我将 build/resources/main/datasets/Iris.csv 复制到 /build/classes/main/datasets/ ,则类加载器可以成功加载文件。有什么想法吗?
我没有更改任何 gradle 默认配置或添加任何构建任务。
【问题讨论】:
-
你是如何运行你的代码的?什么是类路径?
-
我正在使用 IntelliJ 的 gui 运行 JUnit。配置为使用模块的classpath。(项目中有多个模块;上面的源码树就是其中一个模块)