无法通过URL访问.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; } }
我会直接打开它,例如
InputStream is = BlockConverter.class.getResourceAsStream("/test.txt");
上面的方法是我通常访问jar中的资源的方式(它将打开资源,无论它是否被打包在jar中,或者只是作为一个未打包的部署,请注意)