我有一段代码旨在更新包内和资源文件夹中的xml文件(这是一个独立的桌面项目)。当我包含src文件夹的路径时,此代码在IDE中运行良好,例如
File file = new File("src/tools/con.xml");
我的问题是,这在IDE外部不起作用,例如在已部署的应用程序中,因为资源捆绑在jar中。我尝试使用类加载器方法getResource / getResourceAsStream(),但没有成功,例如
File file = new File(getClass().getResource("/tools/con.xml").toString() );
下面是我的完整代码
try{
File file = new File("src/tools/con.xml");
StreamResult result = new StreamResult(file);
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer();
DOMSource source = new DOMSource(doc);
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.transform(source, result);
}catch (IllegalArgumentException | TransformerException e) {
throw new IOException("Failed to save the doc");
}
答案 0 :(得分:2)
恐怕唯一的可能性是解开jar,添加xml并重新打包。对于war文件,我必须对pom.xml做同样的事情,但我相信过程将是相同的。