我已经开发了一段时间的Space Invaders克隆,当我定义确切的路径时,我使用的图像资源工作得很好(I.E. E:\Images\picture.png
)。但是,由于我的项目是在数据棒上,并且不同PC上的不同USB使用不同的字母,我认为将资源放在我的源代码中是一个好主意,这样他们就可以一直工作。所以,这是我的新图像加载代码:
if(type.equals("player"))
{
try
{
img = ImageIO.read(new File("/assets/Bullet.png"));
}
catch(IOException e)
{
e.printStackTrace();
}
}
else if(type.equals("alien"))
{
try
{
img = ImageIO.read(new File("/assets/BulletAlien.png"));
}
catch(IOException e)
{
e.printStackTrace();
}
}
我在源代码目录(即assets
)中创建了一个名为E:\<eclipse workspace>\<project name>\src\assets
的文件夹,并用我的所有图像文件填充它。但是,每次我尝试运行程序时,我会尝试加载所有图像javax.imageio.IIOException
;给出的原因是&#34;找不到输入文件&#34;。我该如何解决这个问题?
答案 0 :(得分:1)
文件的相对根不是您的源文件,而是您的项目文件(其中包含.metadata
的文件)。因此,您需要将图像文件夹移动到父目录或调用new File("src/assets/XXX.png")