Java ImageIO资源路径

时间:2017-03-14 10:08:27

标签: java jar ide

我有一个在Eclipse中运行良好的Java程序 - 当我导出一个可执行的jar文件时,它给了我一个例外。

我知道这是因为我给它错误的路径,但我不知道如何解决。我尝试使用getClass().getResourceaAsStream()(或类似的那样),但这样做也不行。

我目前使用的代码如下:

第31行:

BufferedImage image = ImageIO.read(new File("/src/res/loading.png"));

enter image description here

enter image description here enter image description here

1 个答案:

答案 0 :(得分:0)

好的,所以我创建了一个简单的项目,创建了一个名为res的目录并将一些图像投入其中

Project Structure

在有人指出这不是Eclipse之前,它并不重要,我们已经确定Jar文件包含res目录和图像,它是关于复制结构

然后我写了一个非常简单的例子......

public class Test {

    public static void main(String[] args) {
        new Test();
    }

    public Test() {
        System.out.println(Test.class.getResource("/res/0.jpg"));
        System.out.println(getClass().getResource("/res/0.jpg"));
    }

}

输出......

file:/.../Test/build/classes/res/0.jpg
file:/.../Test/build/classes/res/0.jpg

不,在任何指出IDE的环境与命令行不同之前,我也从命令行运行它......

java -jar Test.jar 
jar:file:/.../Test/dist/Test.jar!/res/0.jpg
jar:file:/.../Test/dist/Test.jar!/res/0.jpg