图像未在JAR中显示

时间:2014-04-28 18:14:54

标签: java eclipse jar

我制作了一个应用程序,它使用图像作为图像的背景,当我在eclipse中运行它时它完美地运行,但是当我将它打包成.Jar文件时,图像没有显示。 我浏览Stackoverflow for Answers我发现了类似的帖子,我尝试了解决方案,但没有任何效果。

这是我最终做的事情。

private void init(){
setPreferredSize( new Dimension( w, h ) );
setVisible(true);

URL url = getClass().getResource("Graph2.png");
System.out.println("Value = " + url);
img = Toolkit.getDefaultToolkit().createImage(url);
}

构造函数调用此函数来初始化GUI 然后我在paintcomponent中调用此函数来绘制图像

private void initializeGrid(Graphics g) {

    Graphics2D g2d = (Graphics2D) g;
    g2d.drawImage(img, 0, 0, this);

}

不确定我尝试将图像放在各处的问题是什么,从src外部的文件夹到bin内部到bin中的GUI包内部都没有用。

提前致谢

2 个答案:

答案 0 :(得分:1)

设置它的典型方法是在Eclipse中创建这样的文件夹:

bin/
resources/
src/

resources中创建与srcbin完全相同的包结构。将您的图片文件复制到resources中与尝试在src中加载它的类相同的包中。

在项目>属性> Java构建路径>来源,将srcresources添加为源文件夹。现在,当您构建项目时,resources的内容将被复制到bin,它将在您的IDE和JAR中运行。

答案 1 :(得分:0)

请尝试在JAR中为您的图像指定绝对位置,例如

URL url = getClass().getResource("/com/test/mypackage/Graph2.png");

如果您的图片位于您的班级附近或

URL url = getClass().getResource("/Graph2.png");

如果您的图片位于JAR文件的根目录

另请注意文件名“Graph2.png”的情况不是“graph2.png”

相关问题