java如何从一个类路径中的不同JAR加载一个相同的命名资源?
假设有一个jar main.jar
,它依赖于另外两个jar——dep1.jar
和dep2.jar
。这两个依赖项都位于清单中的类路径中。MF of main.jar
。每个依赖JAR内部都有一个目录foo
,其中有一个文件bar.txt
:
dep1.jar
|
\--foo/
|
\--bar.txt
dep2.jar
|
\--foo/
|
\--bar.txt
下面是main.jar
的一个主要类:
public class App
{
public static void main( String[] args ) {
ApplicationContext ctx = new StaticApplicationContext();
Resource barResource = ctx.getResource("classpath:foo/bar.txt");
}
}
将加载两个bar.txt
文件中的哪一个?有没有办法在资源URL中指定加载文件的jar
# 1 楼答案
规范中说,类路径上的第一个类/资源被获取(AFAIK)
然而,我会尝试:
作为班级。getResource works不能从另一个jar获取资源,而不是系统类加载器
如果运气好的话,您不需要使用
ClassLoader
和另一个类装入器load dep2。罐子