Java 在jar文件中写入xml文件

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

我有一段代码,用于更新包内和资源文件夹中的xml文件(这是一个独立的桌面项目)。当我包含src文件夹的路径时,这段代码在IDE中运行良好

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文件之外)。我将探讨你的建议。你可以将项目打包为一个文件,但一旦用户想要更改某些内容,你就需要将这些新内容全部写出来,或者作为一个差异,写到外部。