【问题标题】:how to load the images in java runnable jar?如何在 java 可运行 jar 中加载图像?
【发布时间】:2011-12-19 06:34:58
【问题描述】:

当我将我的项目转换为同一系统的可运行 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);

【问题讨论】:

  • 为您的图像使用相对路径。相对于你的类文件。并添加这些图像 n jar 文件。

标签: java swing icons


【解决方案1】:

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

您传递给getResource() 的字符串取决于您在JAR 文件中的位置。如果执行此操作的类是 com.acme.bar 包中的类 Foo,则可以将 capture.gif 放在 JAR 文件的同一 com\acme\bar\ 子目录中(与 Foo 类位于同一目录中),然后执行

JButton capturebut = new JButton(new ImageIcon(Foo.class.getResource("capture.gif")));

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

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

【讨论】:

  • 最后,一个很好的解释,而不仅仅是链接和代码示例:)
【解决方案2】:
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-25
  • 2013-08-25
  • 2012-06-24
  • 2018-03-29
  • 2012-09-08
  • 1970-01-01
相关资源
最近更新 更多