在Intellij Idea13.1.1中构建带有图像的jar

时间:2014-08-01 16:25:32

标签: java jar intellij-idea resources

我的问题是,当我使用intellij 13.1.1构建一个jar并将图像包含在jar中时,图像的路径会被破坏。 我得到一个nullpointerexception。 当我在jar外部添加资源文件夹并链接路径时,您可以在代码示例中看到它的工作原理。但我的目标是将resources文件夹包含在jar文件中,这样我只有一个文件。 我跑ubuntu。

我的项目结构:

    res -> images -> button.gif
    src -> programm -> mainclass.java

    image = Toolkit.getDefaultToolkit().createImage("res/images/animation.gif");
    this.setContentPane(new JLabel(new ImageIcon( image)));

1 个答案:

答案 0 :(得分:1)

如果要从导出的.jar文件中加载资源,则不能像在jar外部那样静态引用它们的位置。根据gif的路径使用以下任何一个:

final String internalImagePath = "res/images/animation.gif";

//example one
Toolkit.getDefaultToolkit().createImage(this.getClass().getClassLoader().getResource(internalImagePath));

//example two
Toolkit.getDefaultToolkit().createImage(MainClass.class.getResource(internalImagePath));

如果图像是相对于包含此代码的类,请使用第一个加载器示例。如果图像是相对于某个类而不是存在此代码的类,请使用第二个示例。

希望这会有所帮助。欢呼声。