18

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

有没有一个图书馆可以做这样的事情?谷歌搜索只发现了一些带有列表文件的黑客行为。

4

4 回答 4

22

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

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

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

于 2012-08-17T23:27:23.180 回答
7

不,您不能列出包中的资源,因为 JVM 根本不知道包中的资源。看到这个问题

于 2008-10-09T09:34:22.970 回答
6

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

于 2010-07-12T21:26:49.453 回答
3

我这样做: - 在打包之前,ls myResources/*.ext > myResources/list.txt - 然后先读取文件

于 2014-10-03T23:20:06.863 回答