【问题标题】:Java - .jar failing to find resources (images, fonts)Java - .jar 找不到资源(图像、字体)
【发布时间】:2012-01-12 14:40:39
【问题描述】:

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

  • build/classes/project/MainClass.class
  • build/classes/resources/images/an_image.png
  • build/classes/resources/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 找到并加载资源。

我哪里出错了?

谢谢。

【问题讨论】:

    标签: java jar embedded-resource


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-07
      • 2014-03-22
      • 1970-01-01
      • 1970-01-01
      • 2014-08-21
      • 1970-01-01
      • 2012-02-04
      • 1970-01-01
      相关资源
      最近更新 更多