Java 在jar文件中写入xml文件
我有一段代码,用于更新包内和资源文件夹中的xml文件(这是一个独立的桌面项目)。当我包含src文件夹的路径时,这段代码在IDE中运行良好Java 在jar文件中写入xml文件,java,javafx,Java,Javafx,我有一段代码,用于更新包内和资源文件夹中的xml文件(这是一个独立的桌面项目)。当我包含src文件夹的路径时,这段代码在IDE中运行良好 File File=new文件(“src/tools/con.xml”) 我的问题是,这在IDE之外不起作用,例如在已部署的应用程序中,因为资源被绑定到jar中。我尝试过使用类加载器方法getResource/getResourceAsStream(),但没有成功 File file = new File(getClass().getResource("/to
File File=new文件(“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");
}
我担心唯一的可能是拆开jar,添加xml并重新处理它。对于war文件,我必须对pom.xml执行同样的操作,但我相信过程将是相同的。我担心唯一的可能性是解开jar,添加xml并重新处理它。对于war文件,我必须对pom.xml执行同样的操作,但我相信过程将是相同的。您不应该尝试在运行时更新与Jar绑定的资源文件。您试图更新的Xml文件应该是一个外部资源(外部,我的意思是它必须位于Jar文件之外)。我将探讨您的建议。您可以将项目打包为单个文件,但一旦用户想要更改某些内容,您就需要将新内容全部或以差异形式写入外部内容。您不应尝试在运行时更新与Jar捆绑在一起的资源文件。您试图更新的Xml文件应该是一个外部资源(外部,我的意思是它必须位于Jar文件之外)。我将探讨你的建议。你可以将项目打包为一个文件,但一旦用户想要更改某些内容,你就需要将这些新内容全部写出来,或者作为一个差异,写到外部。