2012-05-07 95 views
3

当我使用getClass().getResource()方法无法工作时,我需要在eclipse中导出可执行jar文件时编译res文件夹以进行编译。从.jar文件获取图像

当前读数形象代码

public Image loadImage(String fileName) { 
    return new ImageIcon(fileName).getImage(); 
} 

码不起作用

public Image loadImage(String fileName) { 
    return new ImageIcon(getClass().getResource(fileName).getImage(); 
} 
+0

'fileName'的值是什么?罐子的结构是什么?从包含这些方法的类是什么包? –

+0

Image player1 = loadImage(“res/player1.png”);在引号中的位是fileName – DCSoft

回答

2

我现在已经解决了这一问题 - 这是工作

public BufferedImage loadImage(String fileName){ 

    BufferedImage buff = null; 
    try { 
     buff = ImageIO.read(getClass().getResourceAsStream(fileName)); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
     return null; 
    } 
    return buff; 

} 

文件名的值仅是一个图像名例如 的BufferedImage IMG =的LoadImage( “background.png”)的代码;

谢谢大家的帮助。

+0

不,我仍然猜测你做错了,而使用Eclipse,你有没有尝试访问这个职位:[如何添加图像到你的ECLIPSE项目](http://stackoverflow.com/questions/9864267/load-图标图像异常/ 9866659#9866659),这可能可以帮助你,或者按照[这里]提到的步骤(http://gagandeepbali.uk.to/gaganisonline/webpages/makejareclipse.html) –

+0

其实这个代码的作品,我不得不创建一个名为res的文件夹,并在Eclipse中右键单击它,然后单击Build Bath:用作源文件夹,然后代码工作,并且我以前曾查看过这些帖子。 – DCSoft

+0

好吧,很高兴你把它排序:-) –

2

或者:

  • 你的道路是错误的,你应该如果是这样得到一条错误消息,检查它看看它实际尝试的路径,可能不是你的想法。或者调试并查看它尝试的路径,甚至只是打印它尝试的路径。

  • 它不是在瓶子里。使用zip程序检查jar文件,并/或将其重命名为zip并打开它以检查该文件是否真的存在。
+0

的值好吧谢谢我似乎无法得到eclipse来编译jar文件夹中的res文件夹,我是否需要将它添加到类路径中? – DCSoft

+0

我正在使用文件菜单中的导出功能?在向导中,您必须包含res文件夹和/或文件和/或文件类型。 –

+0

是的,这就是我正在做的事情,但是当我导出一个可运行的jar文件时,我没有那个只有导出jar文件可用的选项。 – DCSoft