18

クラスが圧縮された .war ファイルからロードされているか、別の場所にロードされていると仮定してみましょう。特定のパッケージ内のすべてのリソースを検出するにはどうすればよいでしょうか? これは war ファイルであるため、ファイルの列挙は実際には機能しません。ほとんどの場合、これには現在のクラスローダーの使用が含まれますか?

そのようなことをするライブラリはありますか?グーグル検索では、リスト ファイルを使用したいくつかのハッキングのみが明らかになりました。

4

4 に答える 4

22

はい。使用できますClassLoader.getResources("");

または、フェレットAPIを使用することもできます:
https ://www.ohloh.net/p/pureperfect-ferret

このAPIを使用すると、Visitorパターンを使用して、クラスパスと任意のアーカイブおよびディレクトリをスキャンできます。

于 2012-08-17T23:27:23.180 に答える
7

いいえ、パッケージ内のリソースをリストすることはできません。JVM は、どのパッケージにどのリソースが含まれているかを単純に認識していないためです。この質問を参照してください。

于 2008-10-09T09:34:22.970 に答える
6

Spring Framework は と呼ばれるクラスを提供しますPathMatchingResourcePatternResolver。このクラスを使用すると、ワイルドカードを使用して Ant スタイルのパスを指定でき、関連するリソースが検索されます (クラスパス上のフォルダーと jar を検索します)。

于 2010-07-12T21:26:49.453 に答える
3

私はこれを行います:-パッケージ化する前に、ls myResources/*.ext > myResources/list.txt -最初にファイルを読み取るだけです

于 2014-10-03T23:20:06.863 に答える