java - 从jar读取xml文件

时间:2010-08-04 20:09:43

标签: java xml java-ee

我正在尝试从部署到dm-server的jar文件中读取xml配置

这是代码

Reader fileReader = null;
try {
 fileReader = new FileReader("test.xml");
} catch (FileNotFoundException fnfex) {
 fnfex.printStackTrace();
} catch (IOException ioex) {
 ioex.printStackTrace();
}

如果我只是用jar而不是dm-server写一个junit测试,我就能读懂它。

测试被打包到jar中,并且是jar文件的根目录。

请帮助!!!!

感谢, 甲

2 个答案:

答案 0 :(得分:4)

ClassLoader.getResourceAsStream()将允许您从.jar文件中读取资源。如果您的文件位于.jar文件的根目录,则:

this.getClass().getClassLoader().getResourceAsStream("/test.xml");

将从该文件中为您提供一个InputStream。

答案 1 :(得分:4)

您需要使用Class的getResourcegetResourceAsStream方法从jar中读取文件。

这可以这样做:

Reader fileReader = null;

InputStream is = this.getClass().getResourceAsStream("/test.xml");
if (null != is) {
    fileReader = new InputStreamReader(is);
}

请注意,getResourceAsStream如果找不到文件,则返回null。

编辑: 将test.xml更正为/test.xml

另请注意,getResourceAsStream Class<T>ClassLoader版适用于{{1}}的{​​{3}}或getResourceAsStream