如何访问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中一定要注意访问方式。
相关文章
- springboot如何访问resource目录下的文件,访问不到资源处理方法:class path resource [] cannot be resolved to UR
- linux环境下指令替换jar包中的文件
- 如何读取jar包外的properties和等配置文件
- 如何读取jar包外的properties文件和
- Java读取jar包中的resource资源文件
- logback框架使用误区 如何将所有包的ERROR级别日志集中打印到一个日志文件中
- SpringBoot的配置文件加载顺序以及如何获取jar包里的资源路径
- 如何在eclipse中打开查看jar包(.class文件)
- Android(java)学习笔记77:Android中assets文件夹资源的访问
- .net 反射访问私有变量和私有方法 如何创建C# Closure ? C# 批量生成随机密码,必须包含数字和字母,并用加密算法加密 C#中的foreach和yield 数组为什么可以使用linq查询 C#中的 具名参数 和 可选参数 显示实现接口 异步CTP(Async CTP)为什么那样工作? C#多线程基础,适合新手了解 C#加快Bitmap的访问速度 C#实现对图片文件的压