java项目打包后,无法显示图片或无法读取文件问题解决方案

在项目中使用到了图片,可以将图片放在src文件夹的外部,也可以将图片放在src文件夹的内部.
1.图片放在src文件夹外部的,在.jar文件同级目录下,放入图片所在的文件夹,即可解决图片无法显示的问题.
2.图片放在src文件夹内部的,
首先在build成.jar文件或者通过eclipse export成.jar文件时,配置
一个ant的build.xml文件,在<target name="jar" depends="compile">这
一块里面,将image文件夹COPY进class文件的文件夹(这一块的写法请参考ANT脚本的写法).这样即可将图片build进.jar文件
然后,用以下方法处理图片,即可保证图片能够正常显示.

ClassLoader cl = this.getClass().getClassLoader();
URL iconURL = cl.getResource("com/hadeslee/yoyoplayer/pic/player/icon.png");
InputStream is = cl.getResourceAsStream("com/hadeslee/yoyoplayer/pic/player/icon.png");
if (iconURL != null) {
//注意,被打包进jar文件的资源,是不能通过路径来读取的
//需要读取该资源时,可以通过URL和InputStream来进行,具体使用如下
ImageIcon jlguiIcon = new ImageIcon(iconURL);
ImageLoader imageloader = new ImageLoader();
ImageData[] imageDatas = loader.load(is);
setIconImage(jlguiIcon.getImage());
config.setIconParent(jlguiIcon);
}

之前使用图片,比如用放在image里的图片1.jpg,一直都是用ImageIcon imp = new ImageIcon("image/1.jpg"),结果把类与资源图片打包成一个jar包后,图片总是不能显示,只有使image与jar包在同一目录下才能正常显示图片,原因是,当打包成jar后,image/1.jpg就是在.jar文件里面,对于操作系统来说,是不能将一个文件当成一个目录来继续生成路径的.。现在通过使用URL类,即可保证程序图片的正确显示.如果资源被打包进JAR文件,则不能通过路径来获取文件,如果需要操作文件,可以使用URL或者InputStream来进行.
其实不仅仅是图片,打包成.jar文件后,那些被打包进.jar文件的资源都不能正常访问.关于这一部分内容,请阅读【解惑】深入jar包:从jar包中读取资源文件[url]http://www.iteye.com/topic/483115[/url]
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值