我正在尝试加载一个图像文件(gif),该图像文件本地存储在与Eclipse Java项目相同的目录中:
ref 是gif图像存储的相对路径。
ref
public Sprite getSprite(String ref) { BufferedImage sourceImage = null; try { URL url = this.getClass().getClassLoader().getResource(ref); if (url == null) { fail("Can't find ref: "+ref); } sourceImage = ImageIO.read(url); } catch (IOException e) { fail("Failed to load: "+ref); } }
使用上述方法的客户端代码是:
public Entity(String ref,int x,int y) { this.sprite = ResourceManager.getSprite("sprites/alien.gif"); this.x = x; this.y = y; }
在Eclipse工作区中,在我的项目目录中,我有一个文件夹sprites,其中存储了gif图像。但是客户端代码总是返回:Can't find ref: sprites/ship.gif
sprites
Can't find ref: sprites/ship.gif
我在上面的方法中加载gif图片时做错了吗?在这种情况下,是否有更好的直接方法来执行文件查找?
非常感谢您的任何建议。
该getResource()方法搜索您的 类路径 以查找文件,可能是 sprites 目录不在您的类路径中。
getResource()
尝试打开项目属性-> Java Build Path,选择Libraries选项卡,然后单击Add Class Folder按钮,然后选择 sprites 的父目录。
Java Build Path
Libraries
Add Class Folder