加载资源

时间:2014-05-05 09:16:46

标签: java resources

我正在编写一个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文件时它不起作用并向我抛出这个例子

Exeption

我已经在.jar文件中检查了它,它有我需要的所有图像。我的代码有问题吗?

1 个答案:

答案 0 :(得分:0)

固定, 我已经使用getResourceAsStream()更改了方法getResource(),解决了所有问题