Gradle 프로젝트의 리소스 폴더에서 파일을로드 할 수없는 이유를 알아 내려고했습니다. 내 테스트/java 디렉토리에서getResourcesAsStream이 jUnit에서 파일을로드 할 수 없습니다.
/src
/main
/java
/datasets
/IrisDataReader.java
/resources
/datasets
/Iris.csv
/test
/java
/resources
/datasets
/Iris.csv
, 나는이 프로그램에 Iris.csv을 읽을 IrisDataReader를 사용하는 몇 가지 테스트를 실행 해요 :
내 프로젝트는 다음과 같은 폴더 구조를 가지고있다.
다음은 널 포인터 예외를 생성합니다.
내장InputStream inputStream = IrisDataReader.class.getResourceAsStream("/datasets/Iris.csv");
은 Gradle을 다음과 같은 파일 구조를 생성
/build
/classes
/main
/datasets
/IrisDataReader.class
/resources
/main
/datasets
/Iris.csv
여기에 이상한 부분이있다 : 나는/자원/주/데이터 세트를 구축/Iris.csv/빌드/클래스로/주 복사하는 경우/datasets/인 경우 클래스 로더가 파일을 성공적으로로드 할 수 있습니다. 어떤 아이디어?
나는 gradle 기본 구성을 변경하거나 빌드 작업을 추가하지 않았습니다.
코드를 어떻게 실행하고 있습니까? 클래스 패스 란 무엇입니까? – Andreas
IntelliJ의 GUI를 사용하여 JUnit을 실행하고 있습니다. 모듈의 클래스 패스를 사용하도록 설정되어 있습니다 (프로젝트에 여러 개의 모듈이 있으며 위의 소스 트리는 모듈 중 하나입니다) – brainmurphy1