如何正确使用ClassLoader.getResources()?
如何使用ClassLoader.getResources()
从类路径中查找递归资源?
例如
- 在
META-INF
“目录”中查找所有资源:想象一下
getClass().getClassLoader().getResources("META-INF")
不幸的是,这只会检索URL
到恰好该“目录”。
- 所有资源都已命名
bla.xml
(递归)
getClass().getClassLoader().getResources("bla.xml")
但这返回一个空Enumeration
。
还有一个额外的问题:ClassLoader.getResources()
与有ClassLoader.getResource()
什么不同?
回答:
没有办法递归搜索类路径。您需要知道资源的完整路径名才能以这种方式检索它。该资源可能位于文件系统中的目录中,也可能位于jar文件中,因此它不像执行“类路径”的目录列表那样简单。您将需要提供资源的完整路径,例如“/com/mypath/bla.xml”。
对于您的第二个问题,getResource将返回与给定资源名称匹配的第一个资源。在javadoc中为getResource给出了搜索类路径的顺序。
以上是 如何正确使用ClassLoader.getResources()? 的全部内容, 来源链接: utcz.com/qa/423847.html