Java 프로젝트의 컴파일 된 JAR의 패키지 내에서 텍스트 파일을로드하고 있습니다. 관련 디렉토리 구조는 다음과 같습니다.
/src/initialization/Lifepaths.txt
내 코드는를 Class::getResourceAsStream
반환하기 위해 호출 하여 파일을로드 합니다 InputStream
.
public class Lifepaths {
public static void execute() {
System.out.println(Lifepaths.class.getClass().
getResourceAsStream("/initialization/Lifepaths.txt"));
}
private Lifepaths() {}
//This is temporary; will eventually be called from outside
public static void main(String[] args) {execute();}
}
인쇄물은 null
내가 무엇을 사용하든 항상 인쇄 합니다. 위의 방법이 작동하지 않는 이유를 잘 모르겠으므로 시도해 보았습니다.
"/src/initialization/Lifepaths.txt"
"initialization/Lifepaths.txt"
"Lifepaths.txt"
이 둘 중 어느 것도 작동하지 않습니다. 나는 한 읽고 많은 질문을 지금까지 주제에,하지만 그들 중 누구도 도움이 없었다 - 보통, 그들은 단지 이미하고 있어요 루트 경로를 사용하여로드 파일을 말한다. 또는 현재 디렉토리에서 파일을로드 (로드 만하면됩니다 filename
). 내도 시도했습니다. 파일이 적절한 이름으로 적절한 위치에있는 JAR로 컴파일됩니다.
이 문제를 어떻게 해결합니까?
Lifepaths.class
. 그것은 왜 그것이 작동 getClassLoader()
하도록 허용합니까? (또한, 답변을 게시하십시오!)
Lifepaths.getClass()
? Object에 정의 된 정적 메소드는 없습니다 ...