java 缓冲图像未加载

java BufferdImage dosen´t load

所以现在我正在尝试在我的代码中的 BufferdImage 中加载我硬盘上的图像。然而我认为我做的一切都是对的,但我的 trycatch 只留下了陷阱。

更好理解的代码:

private static BufferedImage image;

public void initPictures() {
    try {
        image = ImageIO.read(new File("Pictures/blue.png"));
    } catch (IOException ex) {
        System.out.println("Will not load");
        ex.printStackTrace();
    }

}

在我的 Class 的构造函数中调用了 initPictures()。你可以在这里看到我尝试加载的图片在我的 OS 上的 E:\Dropbox\Dropbox\Java Projekte\FallingBlocks1\build\classes\Pictures 文件夹中。所以"Pictures/blue.png"应该是好的。

Windows文件夹图片:

所以我的问题是:我错过了什么?

编辑:添加了ex.printStackTrace();没有改变想法。

编辑:还尝试将其他图片加载到 "image",但没有其他结果

有两种可能:

1.您的程序可能不在 运行 包含 "Pictures" 文件夹的文件夹中。

要找出您的程序 运行 的位置,请执行 System.out.println(System.getProperty("user.dir")); 查看您 运行 所在的文件夹。如果它打印 E:\Dropbox\Dropbox\Java Projekte\FallingBlocks1\build\classes 以外的内容,您知道这是您提供给 ImageIO.read(file) 的路径的问题。对于踢球,您可能还想看看 new File("Pictures/blue.png").isFile() 返回了什么。

2。您的图像可能无法读取。

如果您尝试第一个测试并且确定您提供的路径是正确的,那么您的图像文件可能已损坏或无法读取(可能是由访问限制、连接问题引起的) 、硬件问题等)。尝试指向不同的图像,看看会发生什么。