每当我制作 JAR 时,JAR 都不会读取其中的文件夹,只有 JAR 文件夹中的一个文件夹。好吧,这不是很具有描述性。所以这是我为支持而编辑的照片。
我希望你现在明白了。那么我将如何解决这个问题?我已经在 Eclipse 中有构建路径的 res 和 stats 部分,现在怎么办?
我用来阅读资源的代码:
Image player;
player = new ImageIcon("res/player.png").getImage();
在使用ImageIcon
和传递 aString
时,它期望参数引用 a File
。
来自JavaDocs
从指定的文件创建一个 ImageIcon。... 指定的 String 可以是文件名或文件路径
文件和“资源”是不同的东西。
相反,尝试使用更像...
new ImageIcon(getClass().getResource("res/player.png"));
假设它res/player.png
位于res
目录旁边的 jar 中。
根据与尝试加载资源的类的关系和资源的位置,您可能需要使用
new ImageIcon(getClass().getResource("/res/player.png"));
反而...
更新
一些建议,正如 EJP 所指出的,您应该为找不到资源的可能性做好准备。
URL url = getClass().getResource("/res/player.png");
ImageIcon img = null;
if (url != null) {
img = new ImageIcon(url);
}
// Deal with null result...
你应该用它ImageIO.read
来阅读图像。除了它支持更多(并且将来可以支持更多)图像格式这一事实之外,它在返回之前加载图像并IOException
在图像无法读取时抛出......
URL url = getClass().getResource("/res/player.png");
ImageIcon icon = null;
if (url != null) {
try {
BufferedImage img = ImageIO.read(url);
icon = new ImageIcon(img);
} catch (IOException exp) {
// handle the exception...
exp.printStackTrace();
}
}
// Deal with null result...