如何在java runnable jar中加载图像?
当我将项目转换为runnable jar相同的系统时,图像将在输出中加载。 但是当我在另一个系统中尝试时,图像无法加载? 如何提供图片url,而不是使用c:?请帮忙吗?
JToolBar toolbar = new JToolBar("Toolbar", JToolBar.HORIZONTAL); JButton capturebut = new JButton(new ImageIcon("C:\\sampleprojects\\ compare\\shankar\\src\\capture.gif")); capturebut.setToolTipText("Capture"); toolbar.add(capturebut);
使用getResourceAsStream
http://download.oracle.com/javase/tutorial/uiswing/components/icon.html
http://www.jugpadova.it/articles/2006/02/05/accessing-a-resource-within-a-jar
您需要将图像文件放入JAR文件中,然后使用java.lang.Class
的getResource()
方法获取引用JAR文件中的文件的URL; 现在你的代码直接从你的文件系统而不是在JAR文件中加载图像文件。
传递给getResource()
的字符串取决于您将其放在JAR文件中的位置。 如果执行此操作的类是com.acme.bar
包中的类Foo
,则可以将capture.gif
放在JAR文件的同一个com\acme\bar\
subdir中(与Foo
类位于同一目录中),并执行此操作
JButton capturebut = new JButton(new ImageIcon(Foo.class.getResource("capture.gif")));
这是因为在具有相对名称(不以/
开头getResource()
的类上调用getResource()
将在与该类的类文件所在的目录相同的目录下查找资源。
另一方面,您可以在JAR文件的根目录下创建resources\images
子目录,而不是"capture.gif"
使用"/resources/images/capture.gif"
。 使用’/’开始名称使其从JAR文件的根开始搜索,而不是相对于类文件的位置。