关于JAVA的SWING项目导出可执行JAR时图片资源问题

发布于 2018-06-20  422 次阅读


    我们在做SWING项目导出的时候,会遇到这样一个问题,项目的一些图片资源文件在导出成JAR包后,无法正确读取(虽然SWING项目还是可以运行,但原来的图片资源全不见了),于是你可以打开JAR包看看里面的东西,确实是有图片在里面,就是无法读取。 

    原因很简单,因为我们在导出成JAR包后,图片资源的路径已经发生了变化,造成无法读取的问题(一般我们习惯了Web项目之后,问题喜欢在项目根目录下面建立pic之类的资源文件夹,但是在SWING项目中这种做法导出后就无法如愿了)。

    解决的办法很简单,首先在项目的SRC目录下建立一个包,然后再把图片等资源放进包中,

    然后再通过下面的方法进行读取:

ImageIcon img = newImageIcon(【你的主类名称】.class.getgetResource("/pic/index.png"));

    比如我在SRC目录下建立了一个pic包,包下面放了一张图片index.png,我的读取图片主类是MySample,那么我需要读取index.png这张图片时就要这样做:

ImageIconindexImage = new ImageIcon(MySample.class.getgetResource("/pic/index.png"));

    要注意的是路径中pic前面的斜杠不可少,否则会报错读取不到资源造成空指针,其他如音频资源也是类似做法。

转载地址:http://blog.sina.com.cn/s/blog_6fd0fd4b0102v4pc.html


个人博客,用于记录工作日常的问题。