我可以列出给定包中的资源吗?
假设我的类是从压缩的.war文件加载或加载到其他地方的,我怎样才能发现给定包中的所有资源? 枚举文件不会真正起作用,因为这是一个war文件。 这很可能涉及使用当前的类加载器?
那里有一个图书馆吗? 谷歌搜索显示只有一些黑客与列表文件。
不,您无法在包中列出资源,因为JVM根本不知道哪些资源在哪个包中。 看到这个问题 。
是。 你可以使用ClassLoader.getResources("")
;
或者你可以使用雪貂API:
https://www.ohloh.net/p/pureperfect-ferret
此API允许您使用访问者模式扫描类路径以及任意归档和目录。
Spring Framework提供了一个名为PathMatchingResourcePatternResolver
的类。 使用此类,您可以为Ant样式路径提供通配符,它将为您找到相关资源(搜索类路径上的文件夹和jar)。
我这样做: – 在打包之前, ls myResources/*.ext > myResources/list.txt
– 然后先读取文件