我可以列出给定包中的资源吗?

时间:2008-10-09 09:15:11

标签: java list resources war

让我们假设我的类是从压缩的.war文件加载或加载到别处, 如何发现给定包中的所有资源?枚举文件不会真正起作用,因为这是一个war文件。这很可能涉及使用当前的类加载器?

那里有没有类似的东西?谷歌搜索显示只有一些黑客与列表文件。

4 个答案:

答案 0 :(得分:22)

是。您可以使用ClassLoader.getResources("");

或者您可以使用雪貂API:
https://www.ohloh.net/p/pureperfect-ferret

此API允许您使用访问者模式扫描类路径以及任意存档和目录。

答案 1 :(得分:7)

不,您无法在包中列出资源,因为JVM根本不知道哪些资源在哪个包中。请参阅this question

答案 2 :(得分:6)

Spring Framework提供了一个名为PathMatchingResourcePatternResolver的类。使用此类,您可以为Ant样式路径提供通配符,它​​将为您找到相关资源(搜索类路径上的文件夹和jar)。

答案 3 :(得分:3)

我这样做: - 包装前ls myResources/*.ext > myResources/list.txt - 然后先阅读文件