如何访问Jar包中的资源文件

时间:2021-04-30 09:09:13
如何访问Jar包中的资源文件

1、现象:问题描述
   我们往往习惯于通过文件路径来访问配置文件,图标文件等资源,这在我们的开发环境中工作正常,但是当系统打包发布时,可能会出现找不到资源文件的情况。
2、关键过程:根本原因分析
要访问一个图标资源,我们可以这样编写代码,
Icon myIcon = new ImageIcon("./com/huawei/iview/commonconfig/image/directory.gif");
在JBuilder开发环境下,它运行正常,图标被正确获取。但是发布版本时,却出现文件找不到的错误,原因是图标文件连同类文件被打成jar文件包,jar中的文件无法通过本地文件路径的方式访问,而要通过URL方式。
3、结论:解决方案及效果
我们可以直接生成一个URL来访问它,但更方便的方法是通过类装载器来来获定位资源,如下,
Icon myIcon = new
ImageIcon(getClass().getResource("/com/huawei/iview/commonconfig/image/directory.gif"));
这样无论资源文件是否在jar包中,程序都可以正常访问资源。
4、经验总结:预防措施和规范建议
如果把资源放到Jar中一定要注意访问方式。