Java Can';t加载图像-未找到图像

Java Can';t加载图像-未找到图像,java,image,embedded-resource,bufferedimage,Java,Image,Embedded Resource,Bufferedimage,我试图加载一个图像作为我的platformer的一部分,但它无法找到该图像,我将其放入默认包中,该包与类相同 public BufferedImage loadImage() { try { BufferedImage img = ImageIO.read(new File("level.jpg")); System.out.println("Level Found!"); return img; } catch (IOException e) { Sy

我试图加载一个图像作为我的platformer的一部分,但它无法找到该图像,我将其放入默认包中,该包与类相同

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;
  }
}

如果像这样引用文件
新文件(“level.jpg”)
,则必须将这些文件放入当前目录。在大多数情况下,它不是默认的包目录

例如,使用Eclipse,您的典型目录结构如下:

+ MyProject
  |
  + src
    |
    + org/mypackage1
    + org/mypackage2
为了使
新文件(“level.jpg”)
正常工作,必须将
level.jpg
放入项目根目录,如下所示

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

使用类加载器的get resource方法

能否将Stacktrace粘贴到此处?文件是否正确部署在类路径中?请尝试提供绝对路径……通常最好同时获取图像等资源以及资源。部署时,这些资源可能会成为一种资源。在这种情况下,必须通过
URL
而不是
File
访问资源。有关如何形成
URL
,请参见标签。您指的是src目录而不是project root我指的是project root。Src目录是默认的包。只需单击答案下方的
edit
按钮即可查看“源代码”。绘制这样的ascii图形非常容易:-)你的建议很好——你能为原始海报提供更多的细节来扩展它吗?@HovercraftFullOfEels很好。我添加了一条评论,说的几乎是相同的事情,但比整个答案更详细!