2008-10-09 63 views
17

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

在那里有一个类似的库吗?谷歌搜索只显示一些黑客与上市文件。

回答

5

不,您不能列出包中的资源,因为JVM根本不知道哪个包中包含哪些资源。见this question

6

Spring框架提供了一个名为PathMatchingResourcePatternResolver的类。通过这个类,你可以给出具有通配符的Ant样式路径,它会为你找到相关的资源(通过类路径中的文件夹和罐子搜索)。

21

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

或者你可以使用白鼬API:
https://www.ohloh.net/p/pureperfect-ferret

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

+0

+1正确的解决方案,应该对任何类加载器和web容器工作 – 2013-05-02 11:56:47

3

我这样做: - 包装之前,ls myResources/*.ext > myResources/list.txt - 然后只是读取文件第一

相关问题