Java - .jar无法找到资源(图像,字体)

时间:2011-12-04 13:00:32

标签: java jar embedded-resource

我似乎无法找到路径和类与ClassLoader的正确组合。 这是我的项目的目录结构:

  • 构建/类/项目/ MainClass.class
  • 构建/类/资源/图像/ an_image.png
  • 建立/类/资源/ ImageLoader.class

ImageLoader的来源如下:

public class ImageLoader {

 public ImageLoader(){...}

 public BufferedImage loadImage(String fileName) {
     String loc = "resources" + File.separator + "images" + File.separator;
     URL imgURL = this.getClass().getResource(loc + fileName);
     BufferedImage img = null;
        try {
           img = ImageIO.read(imgURL);
        } catch (IOException e) {...}
        return img;
     }
  }

我不完全确定它和this.getClass().getClassLoader().getResource()之间会有什么区别,但我已尝试使用各种路径组合,而我似乎无法让.jar找到并加载资源。

我哪里错了?

感谢。

1 个答案:

答案 0 :(得分:6)

不要使用File.separator来获取资源,它应该始终为'/'。可能还需要添加一个前导'/'来表示可以从类路径结构的“顶部”找到资源(而不是尝试加载它的类的子目录)。 / p>