getResourceAsStream()可以在jar文件外找到文件吗?

kun*_*ami 8 java resources jar

我正在开发一个使用库来加载配置文件的应用程序:

InputStream in = getClass().getResourceAsStream(resource);
Run Code Online (Sandbox Code Playgroud)

然后我的应用程序打包在一个.jar文件中.如果resource.jar文件内,我可以指定路径为"/relative/path/to/resource/resource".

我想知道是否有可能找到资源,如果它在.jar文件之外,在这种情况下,我将如何指定路径.

(假设我的应用程序的jar在app/,资源在其中app/config).


该方案采用了3 党库.该库使用该资源作为配置文件.

我还想调整配置文件,而不必一直解压缩/压缩jar文件.

Mik*_*els 9

一般来说,是的,它可以.从技术上讲,该类ClassLoader用于定位参数中指定的资源(请参阅此处的Javadoc).如果您没有使用特殊功能,ClassLoader那么您将获得引导类加载器,它会搜索类路径.因此,如果您在类路径中有目录或其他jar文件,则会搜索它们.