图像未加载到jar文件中

时间:2012-04-20 21:11:59

标签: java jar imageicon

我正在尝试解决此问题。尝试不同的解决方案但没有任何作用我正在使用NetBeans IDE。我用这个结构和文件创建了一个项目:

  

E:\ java的\项目\ ecadpb \ SRC \ ecadpb

     

图像文件位于

中      

E:\ java的\项目\ ecadpb \ SRC \

我已在Netbeans中为我的项目指定了工作文件夹E:\java\project\ecadpb

我已经创建了像这样的图像图标

new ImageIcon("device21.png");

在我的源文件中,它在Netbeans中运行项目时运行正常,但是当我单独构建和运行我的JAR文件时,图像不会显示。但是图像文件在JAR中。

我也尝试了之前提出的相同问题的答案。

URL imageUrl=getClass().getResource("device21.png");
new ImageIcon(imageUrl);

但它在我的情况下不起作用。我是第一次构建JAR文件。任何人都可以帮助我!!

4 个答案:

答案 0 :(得分:2)

执行此操作的一种简单方法是在类路径中添加图像,或在类路径中添加一个目录img,如下所示:

E:\java\project\ecadpb\src\main\java\img\device21.png 

然后从这个位置加载您的图片,如下所示:

ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
URL resource = classLoader.getResource("img/device21.png");
ImageIcon icon = new ImageIcon(resource);

答案 1 :(得分:1)

创建一个名为Images的源文件夹(即如果您正在使用eclipse,请右键单击您的项目 - > new - > sourceFolder)。无论你想要什么,我都称它为我的图像。把一些图像放进去。

现在我有JLabels,我给了他们ImageIcons。请查看以下代码。

    ImageIcon BPawn;
    ImageIcon WPawn;
    JLabel Label = new JLabel[8][8] //2D array of labels that gives each spot a position.
    public void setPieces(){
        //set up pawns in their respective positions.
        BPawn = new ImageIcon("Images/BPawn.png", "BPawn");
        WPawn = new ImageIcon("Images/WPawn.png", "WPawn");
    for(int i=0;i<Label[0].length;i++){
        Label[1][i].setIcon(BPawn);
        Label[6][i].setIcon(WPawn);
    }//end for

    }//end setPieces.

setPieces()方法还有很多内容,但是这一瞥是在创建可执行jar并想要显示图像时如何引用源文件夹中的图像。

答案 2 :(得分:0)

我认为答案可能就是这些建议here

答案 3 :(得分:0)

我使用了类似的方法,

a)指定图像文件名的包路径。

b)确保构建脚本不会忽略图像文件,并且它存在于您的jar文件中。