그래서이 질문은 수백만 번 나는 믿었습니다. 몇 시간 동안 읽고 몇 가지 옵션을 시도했지만 그 중 아무 것도 나를 위해 일하지 않았습니다. 나에게 디렉토리 내의 모든 파일을 제공InputStreamReader를 사용하여 JAR 내부의 디렉토리를 읽으십시오
File f = new File(this.getClass().getResource("/resources/").getPath());
for(String s : f.list){
System.out.println(s);
}
을 : IDE에서이 작품 때문에
나는, 응용 프로그램의 JAR에있는 디렉토리 안에있는 모든 파일을 나열합니다.
지금, 나는이 또한 시도했다 : 디렉토리에
InputStream in = this.getClass().getClassLoader().getResourceAsStream("resources/");
InputStreamReader inReader = new InputStreamReader(in);
Scanner scan = new Scanner(inReader);
while (scan.hasNext()) {
String s = scan.next();
System.out.println("read: " + s);
}
System.out.println("END OF LINE");
그리고 IDE에서이 인쇄 모든 파일을. IDE 인쇄물 외부 : "END OF LINE".
String s = new File(this.getClass().getResource("").getPath()).getParent().replaceAll("(!|file:\\\\)", "");
JarFile jar = new JarFile(s);
JarEntry entry = jar.getJarEntry("resources");
if (entry != null){
System.out.println("EXISTS");
System.out.println(entry.getSize());
}
내가 그 문자열에해야 할 일을했을 어떤 끔찍한 코딩의 :
지금, 나는이 너무과 함께 항아리 내부 항목을 찾을 수 있습니다.
어쨌든 ... Jar 내의 "resources"디렉토리 안에있는 자원 목록을 가져올 수 없습니다. 어떻게하면됩니까? ???
답변과 마지막 의견을 보내 주셔서 감사합니다. 아이러니하게도, 나는 답을 읽기 위해 여기에 오기 전에 같은 해결책을 찾았습니다. 그렇다면 가장 좋은 방법이라고 생각합니다. 또 다른 방법은 임시 폴더에서 런타임에 읽을 필요가있는 모든 리소스가있는 임시 폴더를 만드는 것입니다. – Jh62
외부 리소스로 리소스를 사용하는 것이 더 쉬운 솔루션이라고 저는 말할 것입니다. "파일 목록"솔루션을 사용하면 실제로 여러 Jar에 여러 리소스 목록 (동일한 항목 포함)을 배포 할 수 있습니다.이것들을 병합해야하지만, 실제로 저장되어있는 곳을 모른 채로 여러 개의 Jars에있는 리소스에 액세스 할 수 있습니다. – MadProgrammer
@MadProgrammer, 빌드하는 동안 모든 파일을 나열하는 링크를 제공하십시오. 방법? – supertonsky