这是我在IntellijIDEA
中的项目结构当我构建我的jar文件时,它不会打包characters.xml文件。
Document doc = builder.parse("characters.xml");
这是我在代码中获取它的方式。这里显然有一个错误,但我无法弄清楚应该放在哪里以及我应该写什么路径。
答案 0 :(得分:0)
documentation for DocumentBuilder.parse(String)州:
将给定URI的内容解析为XML文档,并返回一个新的DOM
Document
对象。
"characters.xml"
在技术上是一个有效的URI,但它是一个相对URI,并且没有可用于解析它的基URI。
要阅读.jar中的文件,请使用Class.getResource或Class.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。