Итак, я полагал, что этот вопрос задавали миллион раз, и я читал их пару часов и пробовал несколько вариантов, предложенных некоторыми людьми, но ни один из них не работает для меня.
Я хочу перечислить все файлы внутри каталога внутри JAR приложения, поэтому в IDE это работает:
File f = new File(this.getClass().getResource("/resources/").getPath());
for(String s : f.list){
System.out.println(s);
}
Это дает мне все файлы внутри каталога.
Теперь я пробовал это также:
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 печатает: «КОНЕЦ СТРОКИ».
Теперь я также могу найти запись в банке с этим:
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());
}
Это какое-то ужасное кодирование, которое мне пришлось сделать с этой строкой.
В любом случае... Я не могу получить список ресурсов внутри каталога "resources" в Jar... Как я могу это сделать???