访问JAR资源

Pab*_*dez 9 java resources jar relative-path embedded-resource

我有一个jar文件,包含我要分发的资源(主要是缓存,日志记录等配置).

我遇到了这些资源的相对路径问题,所以我做了我在另一个stackoverflow问题中发现的问题,该问题说这是一种有效的方法:

ClassInTheSamePackageOfTheResource.class.getResourceAsStream('resource.xml');
Run Code Online (Sandbox Code Playgroud)

可悲的是,这不起作用.

有任何想法吗?谢谢!

PS:显然我不能使用绝对路径,如果可能的话我想避免使用环境变量

Mar*_*ams 11

确保资源文件夹在项目设置中列为源文件夹.此外,确保在构建jar时将资源文件夹设置为导出.

您可以在jar文件中添加.zip扩展名,然后将其打开以确保您的资源包含在预期的位置.

我总是使用这样的绝对路径:

InputStream input = this.getClass().getResourceAsStream("/image.gif");
Run Code Online (Sandbox Code Playgroud)

使用绝对路径时,"/"是jar文件中的根文件夹,而不是主机的根文件夹.

  • 关于/是jar的根文件夹的注释+1. (4认同)