【发布时间】:2016-12-29 02:30:04
【问题描述】:
我正在尝试从 jar 文件中访问资源。资源位于 jar 所在的同一目录中。
my-dir:
tester.jar
test.jpg
我尝试了不同的方法,包括以下内容,但每次输入流都为空:
[1]
String path = new File(".").getAbsolutePath();
InputStream inputStream = this.getClass().getResourceAsStream(path.replace("\\.", "\\") + "test.jpg");
[2]
File f = new File(this.getClass().getProtectionDomain().getCodeSource().getLocation().toURI().getPath());
InputStream inputStream = this.getClass().getResourceAsStream(f.getParent() + "test.jpg");
你能给我一些提示吗?谢谢。
【问题讨论】:
-
getResourceAsStream从 jar 中获取资源。 docs.oracle.com/javase/7/docs/api/java/io/FileInputStream.html -
"getResourceXXX" 将从类路径加载资源,您需要将 jpg 作为文件打开或将 my-dir 添加到类路径中。
-
您是否尝试过拆分代码,这样您至少可以确定您获得了 .jpg 文件的正确路径?
-
@LarsKristensen - 我确实打印了 .jpg 的路径,使用选项 [1] 似乎是正确的
-
this 可能会有所帮助。
标签: java inputstream getresource