从jar获取资源

时间:2010-09-30 14:59:05

标签: java resources jar

我有文件jar:

myJar/res/endingRule.txt
myJar/wordcalculator/merger/Marge.class

在Marge.java中我有代码:


private static final String ENDINGS_FILE_NAME = "res/endingRule.txt";
....
InputStream inputStream  = getClass().getClassLoader().getResourceAsStream(ENDINGS_FILE_NAME);
.....

但是在这个inputStream为null之后。如何使用资源?为什么空?

4 个答案:

答案 0 :(得分:16)

要检索jar中的文件,请使用:

private static final String ENDINGS_FILE_NAME = "/res/endingRule.txt";
...
InputStream is = getClass( ).getResourceAsStream(ENDINGS_FILE_NAME);

答案 1 :(得分:6)

您的名字看起来不对 - 错误的扩展程序错误的斜杠:

private static final String ENDINGS_FILE_NAME = "res/endingRule.txt";

答案 2 :(得分:1)

\被解释为转义字符而不是目录分隔符。文件名也是关闭的。尝试:

private static final String ENDINGS_FILE_NAME = "res/endingRule.txt";

答案 3 :(得分:0)

使用:

private static final String ENDINGS_FILE_NAME = "res\\endingRule.txt";