Java Swing:在Jar中显示图像

时间:2020-03-05 18:44:05  来源:igfitidea点击:

从eclipse运行Java应用程序时,我的ImageIcon正常显示。

但是在创建一个罐子之后,图像的路径显然被搞砸了。

有没有一种方法可以在运行时从jar中提取图像,以便随后将其打开?还是有更好的方法来做到这一点?

如果可能的话,我想分发一个jar文件。

解决方案

回答

我们可以尝试类似:

InputStream stream = this.getClass().getClassLoader().getResourceAsStream("/images/image.jpg");

在JAR文件中,我们可能具有以下目录结构:

MyJAR.jar

  - com (class files in here)

  - images

  ----image.jpg

回答

要在相同的jar中从图像文件创建ImageIcon,请加载代码:

new javax.swing.ImageIcon(getClass().getResource("myimage.jpeg"))

Class.getResource返回一个资源的URL(或者为null!)。 ImageIcon具有从URL加载的构造函数。

要在不在"类路径"上的jar中构造资源的URL,请参见java.net.JarURLConnection的文档。