И така, този въпрос е задаван милиони пъти, вярвах, и ги чета от няколко часа и опитвам няколко опции, дадени от някои хора, но нито една от тях не работи за мен.
Искам да изброя всички файлове в директория в 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 отпечатва: "КРАЙ НА РЕД".
Сега мога да намеря запис в Jar и с това:
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... Как мога да направя това???