我构建jar时没有打包.Xml文件

时间:2017-01-19 17:12:36

标签: java xml jar package

这是我在IntellijIDEA

中的项目结构

Structure

当我构建我的jar文件时,它不会打包characters.xml文件。

Document doc = builder.parse("characters.xml");

这是我在代码中获取它的方式。这里显然有一个错误,但我无法弄清楚应该放在哪里以及我应该写什么路径。

1 个答案:

答案 0 :(得分:0)

documentation for DocumentBuilder.parse(String)州:

  

将给定URI的内容解析为XML文档,并返回一个新的DOM Document对象。

"characters.xml"在技术上是一个有效的URI,但它是一个相对URI,并且没有可用于解析它的基URI。

要阅读.jar中的文件,请使用Class.getResourceClass.getResourceAsStream。一个例子是:

Document doc;
try (InputStream stream = Controller.class.getResourceAsStream("characters.xml")) {
    doc = builder.parse(stream);
}

或者,您可以将资源转换为URI:

Document doc = builder.parse(
    Controller.class.getResource("characters.xml").toString());

请注意,如果参数不是现有jar条目的路径,则Class.getResource和Class.getResourceAsStream都返回null。您需要将characters.xml移动到src \ sample目录中。您可能需要通过在IDE的“文件”区域中检查它来验证.jar文件是否包含characters.xml。