したがって、この質問は私が信じていた百万回も尋ねられており、私はそれらを数時間読んで、何人かの人々から与えられたいくつかのオプションを試してきましたが、どれもうまくいきません.
アプリケーションの 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 の外側には、"END OF LINE" が出力されます。
さて、これでも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());
}
それは私がその文字列に対してしなければならなかった恐ろしいコーディングです。
とにかく... Jar内の「resources」ディレクトリ内のリソースのリストを取得できません...どうすればこれを行うことができますか???