从Jar文件加载图像仅适用于开发机器?

时间:2014-06-02 10:10:09

标签: java eclipse jar embedded-resource imageicon

我在加载JAR文件中包含的图片时遇到问题。我已经阅读了一些与此相关的其他帖子。但找不到答案。现在这里变得复杂了。如果我使用从Eclipse导出的Runnable JAR文件并使用标准JRE运行它,这一切都正常。但是,这个JAR文件实际上是一个名为pro / ENGINEER的软件插件,它有自己的JRE,用于运行JAR文件。奇怪的是..这在开发机器上运行良好,安装了eclipse等等,但是在任何客户端机器上都不起作用?!但我无法看到有什么不同。

我正在尝试使用以下方式加载图片:

ImageIcon icon = new ImageIcon(this.getClass().getResource("resources/Header.png");

这个方法是从我的开始'类,Jar的结构如下:

load
  Start.java
      load.resources
           Header.png

如果我用WinRar打开Jar文件,你可以看到图像肯定存在于jar中,处于这个位置。

我知道这可能是一个非常具体的问题,但如果有人可以提供任何帮助,那就太棒了。

1 个答案:

答案 0 :(得分:0)

我没有遇到你现在遇到的特殊问题,但是我遇到了过去几次没有在JAR文件中找到资源的问题。

解决方案是不从获取资源,而是从类加载器获取资源,如下所示:

ImageIcon icon = new ImageIcon(this.getClass().getClassLoader().getResource("resources/Header.png"));

请注意getClass()之后的 .getClassLoader()调用。

希望这有帮助。