从Jar加载图像:始终为null

看了SO上的其他post,他们没有解决这个问题。

我正在尝试从我的jar文件加载图像。 它一直是空的。 图像位于:

.Jar file > images > BLOCK.png 

要加载我正在做的图像:

 BufferedImage bImg; URL url = getClass().getResource("/images/BLOCK.png"); try { bImg = ImageIO.read(url); } catch (IOException ex) { Logger.getLogger(TileEngine.class.getName()).log(Level.SEVERE, null, ex); } 

url是空的,因为它是bImg。

不要担心区分大小写,因为我已经检查过了。

尝试这个 :

 Toolkit.getDefaultToolkit().getImage(getClass().getResource("/images/BLOCK.png")); 

与您用于调用getResource的类相比,哪个jar文件是图像? 如果他们被同一个类加载器加载,那应该没问题。

您是否仔细检查过jar文件实际上是否包含该文件?

你确定你的类加载器实际上是在使用jar文件(而不是直接在磁盘上使用.class文件)吗?

如果你有一个简短但完整的程序来certificate这个问题,那真的会有所帮助。 (一个控制台应用程序将是理想的…毕竟我们不需要看到图像。)