我正在编写一个Java应用程序,它需要从资源文件夹中加载一些图像。我已将该文件夹添加到Java库中。 我使用此代码读取BufferedImages
public BufferedImage grabImage(String fileName, int subImgNumber){
ClassLoader classloader = Thread.currentThread().getContextClassLoader();
BufferedImage tmp;
if(!fileName.equals("null"))
try {
tmp = ImageIO.read(classloader.getResourceAsStream("../res/textures/"+fileName+".png"));
maxIndex = tmp.getWidth()/32 - 1;
if(subImgNumber > maxIndex){
subImgNumber = maxIndex;
}else if(subImgNumber < 0){
subImgNumber = 0;
}
requestImage = tmp.getSubimage(subImgNumber * 32, 0, 32, 32);
} catch (IOException e) {
e.printStackTrace();
}
else
requestImage = null;
return requestImage;
}
如果我在Eclipse中测试应用程序它运行良好且速度非常快,但是当我导出jar文件时它不起作用并向我抛出这个例子
我已经在.jar文件中检查了它,它有我需要的所有图像。我的代码有问题吗?
答案 0 :(得分:0)
固定,
我已经使用getResourceAsStream()
更改了方法getResource()
,解决了所有问题