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

jcr*_*kar 3 java icons swing

当我将项目转换为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);
Run Code Online (Sandbox Code Playgroud)

Mat*_*ine 8

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

传递给的字符串getResource()取决于您将其放在JAR文件中的位置.如果类这样的类Foo中包com.acme.bar,你可以把capture.gif在同一个com\acme\bar\JAR文件的子目录(在相同的目录Foo类),并做

JButton capturebut = new JButton(new ImageIcon(Foo.class.getResource("capture.gif")));
Run Code Online (Sandbox Code Playgroud)

这是因为调用getResource()具有相对名称(不是以/)开头的类将在与该类的类文件所在的目录相同的目录下查找该资源.

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