从Jar加载图像:始终为null

时间:2010-06-19 17:59:59

标签: java image null

查看SO上的其他帖子,他们没有解决这个问题。

我正在尝试从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一样为空。

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

2 个答案:

答案 0 :(得分:7)

试试这个:

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

答案 1 :(得分:1)

与您用于调用getResource的课程相比,该图片中包含哪个jar文件?如果它们被同一个类加载器加载,它应该没问题。

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

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

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