从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这个问题,那真的会有所帮助。 (一个控制台应用程序将是理想的…毕竟我们不需要看到图像。)