特定のパッケージ内のリソースをリストできますか?
質問
クラスが圧縮された.warファイルからロードされるか、他の場所にロードされると仮定します。 特定のパッケージ内のすべてのリソースを見つけるにはどうすればよいですか?これはwarファイルであるため、ファイルの列挙は実際には機能しません。ほとんどの場合、これには現在のクラスローダーを使用する必要がありますか?
そのようなことをするライブラリはありますか?グーグルは、ファイルをリストするハッキングのみを明らかにしました。
解決
いいえ、JVMは単にどのリソースがどのパッケージに含まれているかを知らないため、パッケージのリソースをリストすることはできません。 こちらをご覧ください質問。
他のヒント
はい。 ClassLoader.getResources("")
;
を使用できます
または、フェレットAPIを使用できます。
https://www.ohloh.net/p/pureperfect-ferret
このAPIを使用すると、Visitorパターンを使用して、クラスパスと任意のアーカイブおよびディレクトリをスキャンできます。
Spring Frameworkは、 PathMatchingResourcePatternResolver
。このクラスを使用すると、ワイルドカードを使用してAntスタイルのパスを指定でき、関連するリソースが見つかります(クラスパス上のフォルダーとjarを検索します)。
これを行います:
-パッケージ化する前に、 ls myResources / *。ext> myResources / list.txt
-次に、最初にファイルを読む
所属していません StackOverflow