2014-04-13 109 views
1

我試圖從我的res文件夾中加載一個圖像,其中已經是Java BuildPath的一部分。可悲的是,我似乎無法找到既沒有相對也沒有絕對路徑的圖像。 我總是收到此錯誤信息:Java:從res文件夾加載BufferedImage文件夾

Exception in thread "Thread-2" java.lang.IllegalArgumentException: input == null! 
at javax.imageio.ImageIO.read(Unknown Source) 
at schneider.twodgame.BufferedImageLoader.loadImage(BufferedImageLoader.java:14) 
at schneider.twodgame.Game.init(Game.java:64) 
at schneider.twodgame.Game.run(Game.java:99) 
at java.lang.Thread.run(Unknown Source) 

這裏是代碼的一部分:

public class BufferedImageLoader { 

private BufferedImage image; 

public BufferedImage loadImage(String path) throws IOException { 
    System.out.println(getClass()); 
    image = ImageIO.read(getClass().getResource(path)); 
    return image; 
    } 
} 

這是我試圖加載與圖像的方法。該方法是我的主要類別的一部分:

public void init() { 
    BufferedImageLoader loader = new BufferedImageLoader(); 

    try { 
     spriteSheet = loader.loadImage("/res/sprite_sheet.png"); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

} 

回答

1

看一看here

spriteSheet = loader.loadImage("/sprite_sheet.png"); 

應該工作。

+0

它工作。非常感謝你! – Nickels

0

它目前正在尋找在你的.class文件夾或.jar文件在你的類文件中的位置:

[root folder of class files]/res/sprite_sheet.png 

也許應該尋找在:

[root folder of class files]/schneider/twodgame/res/sprite_sheet.png 

在這種情況下,您應該刪除前導斜槓(/)。