如何读取jar外的XML文件?

时间:2018-01-26 21:19:44

标签: java maven

我试图让jar从jar之外的目标/类中读取,这样我就可以比在jar中更容易地配置数据了。以下是我用来阅读文件的内容,但它是从jar中读取的。在阅读XML之后,我使用DocumentBuilder来解析XML。

ClassLoader classLoader = getClass().getClassLoader();
InputStream configFile = classLoader.getResourceAsStream(file);

1 个答案:

答案 0 :(得分:0)

  

以下是我用来阅读文件的内容,但是它正在阅读   在罐子里。

要读取您执行的jar外部的资源,请不要使用类加载器来查找将在正在运行的jar中查找的资源,但使用允许的File或更好Path定位/操纵文件系统中的资源 你可以这样做:

InputStream configFile =  Files.newInputStream(Paths.get(file));

无论如何,我不确定您的用例是否有效,因为从target/classes读取文件并不是真的有意义,因为位于此处的资源并非设计为持久性的,而是打包在构建的工件中(这里是一个JAR)。