3

当我在eclipse中导出可执行jar文件时,我需要获取res文件夹来编译,当我使用getClass().getResource()它不起作用的方法时。

当前读取图像代码

public Image loadImage(String fileName) {
    return new ImageIcon(fileName).getImage();
}

不起作用的代码

public Image loadImage(String fileName) {
    return new ImageIcon(getClass().getResource(fileName).getImage();
}
4

2 回答 2

3

我现在已经解决了这个问题 - 这是有效的代码

 public BufferedImage loadImage(String fileName){

    BufferedImage buff = null;
    try {
        buff = ImageIO.read(getClass().getResourceAsStream(fileName));
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        return null;
    }
    return buff;

}

fileName 的值只是一个图像名称,例如 BufferedImage img = loadImage("background.png");

感谢大家的帮助。

于 2012-05-12T12:05:06.000 回答
2

任何一个:

  • 你的路径是错误的,如果是这样,你应该收到一条错误消息,检查它以查看它实际尝试的路径,可能不是你想的那样。或者调试并查看它尝试的路径,甚至只是打印它尝试的路径。

或者

  • 它不在罐子里。使用 zip 程序检查 jar 文件和/或将其重命名为包含 zip 并打开它以检查文件是否真的存在。
于 2012-05-07T22:04:54.383 回答