Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-.jar找不到资源(图像、字体)_Java_Jar_Embedded Resource - Fatal编程技术网

Java-.jar找不到资源(图像、字体)

Java-.jar找不到资源(图像、字体),java,jar,embedded-resource,Java,Jar,Embedded Resource,我似乎找不到路径和类与类加载器的正确组合。 以下是我的项目的目录结构: build/classes/project/MainClass.class build/classes/resources/images/an_image.png build/classes/resources/ImageLoader.class ImageLoader的源代码如下所示: public class ImageLoader { public ImageLoader(){...} public Buf

我似乎找不到路径和类与类加载器的正确组合。 以下是我的项目的目录结构:

  • 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;
     }
  }
我不完全确定它和
这个.getClass().getClassLoader().getResource()
之间有什么区别,但我已经尝试了各种路径组合,似乎无法让.jar找到并加载资源

我哪里做错了


谢谢。

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