如果类路径中有两个JAR文件,则两个JAR文件的根目录中都包含名为"config.properties"的资源.有没有办法检索两个类似的文件getClass().getResourceAsStream()?订单无关紧要.
另一种方法是在类路径中加载匹配某些标准的每个属性文件,如果可能的话.
Sea*_*oyd 28
你需要
(或静态版本).ClassLoader.getResources(name)ClassLoader.getSystemResources(name)
但不幸的是,有一个已知问题,资源不在"目录"中.例如foo/bar.txt,很好,但bar.txt可能是一个问题.这在Spring Reference中有很好的描述,尽管它绝不是Spring特有的问题.
更新:
这是一个返回InputStream列表的辅助方法:
public static List<InputStream> loadResources(
final String name, final ClassLoader classLoader) throws IOException {
final List<InputStream> list = new ArrayList<InputStream>();
final Enumeration<URL> systemResources =
(classLoader == null ? ClassLoader.getSystemClassLoader() : classLoader)
.getResources(name);
while (systemResources.hasMoreElements()) {
list.add(systemResources.nextElement().openStream());
}
return list;
}
Run Code Online (Sandbox Code Playgroud)
用法:
List<InputStream> resources = loadResources("config.properties", classLoader);
// or:
List<InputStream> resources = loadResources("config.properties", null);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10861 次 |
| 最近记录: |