항아리 내에서 다음과 같이 리소스를 읽고 싶습니다.
File file;
file = new File(getClass().getResource("/file.txt").toURI());
BufferredReader reader = new BufferedReader(new FileReader(file));
//Read the file
Eclipse에서 실행할 때 정상적으로 작동하지만 항아리로 내 보내면 IllegalArgumentException이 발생합니다.
Exception in thread "Thread-2"
java.lang.IllegalArgumentException: URI is not hierarchical
왜 그런지 모르겠지만 테스트를 통해 변경하면 발견했습니다.
file = new File(getClass().getResource("/file.txt").toURI());
에
file = new File(getClass().getResource("/folder/file.txt").toURI());
그런 다음 반대의 방식으로 작동합니다 (jar에서는 작동하지만 일식에서는 작동하지 않습니다).
Eclipse를 사용하고 있으며 파일이있는 폴더가 클래스 폴더에 있습니다.
getResourceAsStream
여전히 문제에 대한 더 간단하고 이식 가능한 솔루션 이라고 생각 합니다.