如何在java runnable jar中加载图像?

时间:2011-11-01 06:28:34

标签: java swing icons

当我将项目转换为runnable jar相同的系统时,图像将在输出中加载。但是当我在另一个系统中尝试时,图像无法加载?如何提供图片网址,而不是使用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);

2 个答案:

答案 0 :(得分:8)

您需要将图像文件放入JAR文件中,然后使用getResource()的{​​{1}}方法获取引用JAR文件中的文件的URL;现在你的代码直接从你的文件系统而不是从JAR文件中加载图像文件。

传递给java.lang.Class的字符串取决于您将其放在JAR文件中的位置。如果执行此操作的类是包getResource()中的类Foo,则可以将com.acme.bar放在JAR文件的同一capture.gif子目录中(与{{在同一目录中) 1}} class),并且做

com\acme\bar\

这是因为在具有相对名称(不以Foo开头)的类上调用JButton capturebut = new JButton(new ImageIcon(Foo.class.getResource("capture.gif"))); 将在与该类的类文件所在的目录相同的目录下查找资源。 / p>

另一方面,您可以在JAR文件的根目录下创建getResource()子目录,而不是/使用resources\images。使用'/'开始名称使其从JAR文件的根开始搜索,而不是相对于类文件的位置。

答案 1 :(得分:4)