我在Java / Eclipse中遇到了这个奇怪的问题。我使用它来加载BufferedImages(以及类似的加载字体):
ClassLoader classLoader = ResourceLoader.class.getClassLoader();
ImageIO.read(new File(classLoader.getResource(path).getFile()));
此代码位于名为ResourceLoader的类中。它是我制作并用于加载BufferedImages和Fonts的实用程序类。一切都在Eclipse中工作,但是当导出到可执行JAR时,它会在尝试加载资源时抛出nullPointerException。我查看了JAR,资源被打包在那里。
路径采用以下格式:"/img/paper.png"
以下是我的项目的层次结构:
为什么它不起作用的任何想法?
答案 0 :(得分:0)
jar文件的内容不是文件和文件夹,因此您无法像访问内容一样访问其内部。类加载器可以为您提供资源的直接InputStream
。 ImageIO
可以InputStream
。一起使用它们。