java project---exe

2019-04-24  本文已影响0人  F的平方

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

在项目中使用到了图片,可以将图片放在src文件夹的外部,也可以将图片放在src文件夹的内部. 

1.图片放在src文件夹外部的,在.jar文件同级目录下,放入图片所在的文件夹,即可解决图片无法显示的问题. 

2.图片放在src文件夹内部的, 

首先在build成.jar文件或者通过eclipse export成.jar文件时,配置

一个ant的build.xml文件,在这

一块里面,将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]


MyEclipse 导出 runable Jar 再导出exe 文件:

参考群文件↑


https://wenku.baidu.com/view/50334e4dcf84b9d528ea7a37.html

上一篇 下一篇

猜你喜欢

热点阅读