无法通过网址访问.jar中的文件

时间:2016-01-21 18:19:09

标签: java file jar

我需要使用URL访问当前执行的.jar中的文件。

URL url = BlockConverter.class.getResource("/test.txt");
System.out.println(url.toString());
InputStream  is = url.openStream();

这就是我所做的。 输出是:

jar:file:/C:/Users/User/Desktop/SERVER/plugins/MyJar.jar!/test.txt

我的InputStream在初始化时总是会抛出IOException,即使正确输出了URL。 那怎么可能呢? 为什么我无法打开流?

编辑: 此外,请不要使用"使用getResourceAsStream",因为它使用相同类型的代码:

public InputStream getResourceAsStream(String name) {
    URL url = getResource(name);
    try {
        return url != null ? url.openStream() : null;
    } catch (IOException e) {
        return null;
    }
}

1 个答案:

答案 0 :(得分:1)

我会直接将其作为打开,例如

InputStream  is = BlockConverter.class.getResourceAsStream("/test.txt");

上面的方法是我通常访问jar中的资源的方式(它将打开资源,无论它是否被打包在jar中,或者只是作为一个未打包的部署,请注意)