2013-11-28 185 views
1

我想加载一个图像作为我的平台游戏的一部分,但它不能缝找到图像,我把它放入默认包,这是类无法加载图像 - 图像未找到

public BufferedImage loadImage() { 
    try { 
    BufferedImage img = ImageIO.read(new File("level.jpg")); 
    System.out.println("Level Found!"); 
    return img; 

    } catch (IOException e) { 
    System.out.println("Level Missing!"); 
    return null; 
    } 
} 
+1

你可以粘贴你的Stacktrace吗? – Prasad

+0

文件是否正确部署在您的类路径中? –

+1

尝试提供绝对路径.... –

回答

3

如果你参考你的文件,像这样new File("level.jpg")你必须把这些文件放到当前目录。在大多数情况下,它不是默认的软件包目录。

例如使用Eclipse中的目录结构会是这样的:

+ MyProject 
    | 
    + src 
    | 
    + org/mypackage1 
    + org/mypackage2 

为了得到new File("level.jpg")工作,你必须把level.jpg到项目的根目录下,这样

+ MyProject 
    | 
    + src 
    | | 
    | + org/mypackage1 
    | + org/mypackage2 
    | 
    + level.jpg 
+0

你的意思是src目录,而不是项目根 – Keerthivasan

+0

+1的包结构,你是怎么做到的? – Keerthivasan

+0

我的意思是项目根。 Src目录是默认包。只需点击答案下方的编辑按钮即可查看“源代码”。绘制这样的ascii图形非常简单:-) –

0

使用获取类加载器的资源方法

+2

您的建议很好 - 您可以通过提供更多关于原始海报益处的更多细节来扩展它吗? –

+1

@HovercraftFullOfEels好点。我添加了一个评论,说的很多相同的东西,但比这整个答案更详细! –