现在我正在尝试在我的代码中的BufferdImage中加载我的硬盘上的图像。然而,我认为我做的一切都是正确的,但我的尝试只留下了捕获物。
更好理解的代码:
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();
}
}
在我的类的构造函数中调用initPictures()。你可以在这里看到我尝试加载的图片位于我的操作系统上的E:\ Dropbox \ Dropbox \ Java Projekte \ FallingBlocks1 \ build \ classes \ Pictures文件夹中。所以“Pictures / blue.png”应该是好的。
Windows文件夹图片:
所以我的Qustion就是:我错过了什么?
编辑:添加了ex.printStackTrace();没有改变想法。
编辑:还尝试在“图片”中加载其他图片,没有其他结果
答案 0 :(得分:0)
有两种可能性:
<强> 1。您的程序可能没有在包含&#34;图片&#34;的文件夹中运行。文件夹中。强>
要找出程序的运行位置,请执行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。您的图片可能无法读取。
如果您尝试第一次测试并且您确定所提供的路径是正确的,那么您的图像文件可能已损坏或无法读取(可能是由访问限制引起的,连接问题,硬件问题等)。尝试指向不同的图像,看看会发生什么。