所以我有一个第三方类(使用它的公司授权),它公开了一个称为
的静态方法。公共静态属性loadProperty(String path);
在内部,它尝试使用以下代码进行加载。
ClassLoader a = ClassLoader.getSystemClassLoader();
if (a != null) {
URL u = a.getResource(path); // - - - > returns null
if (u != null) {
u = a.getResource('/' + path); // - - - > returns null
}
if (u == null) {
ClassLoader b = Thread.currentThread().getContextClassLoader();
u = b.getResource(path); // - - - > returns null
if (u != null) {
u = b.getResource('/' + path); // - - - > returns null
}
}
}
这里的问题是,我总是空的。
如果我将文件保存在/ resources中,然后引用它,那么它将找到该文件。
经过研究,我发现它指的是相对路径。
由于我的应用程序将在不同的环境上运行,因此我希望使其可配置并将文件保留为外部文件。
因此,有没有一种方法可以传递路径,使加载程序可以从该路径加载文件? 诸如“ cd ..”之类的东西在目录中上移了,是否有任何方法可以直接进入root(windows-C:\ n Unix root〜),然后从那里开始并进入绝对路径?
寻求帮助。
答案 0 :(得分:0)
ClassLoader
仅加载类路径上的资源。处理文件的绝对路径时,可以使用File
类来访问这些文件。