我正在尝试更改存储在Java中的jar文件中的xml文件。
我的程序从jar中读取xml文件,使用以下命令对其进行一些更改:
javax.xml.parsers.DocumentBuilder
javax.xml.parsers.DocumentBuilderFactory
org.w3c.dom.Document;
这没有任何问题。然后,我使用以下代码行将这些更改写入新的xml文件:
TransformerFactory transFactory = TransformerFactory.newInstance();
Transformer trans = transFactory.newTransformer();
DOMSource source = new DOMSource(doc);
File tempStorage = new File("/some/directory/config.xml");
StreamResult result = new StreamResult(tempStorage);
trans.transform(source, result);

完美无缺。在此之后,我使用以下控制台命令将xml文件添加到jar中:
jar uf jarFile.jar "/some/directory/name.xml"
这会将xml文件添加到指定目录中的jar中。我想将它添加到jar的基目录。例如,当我解压缩jar时,我希望文件夹结构为:
jarFolder/config.xml
不是
jarFolder/some/directory/config.xml
用" config.xml替换临时存储目录"不起作用,因为我通过eclipse运行程序,它将文件存储为:
jarFolder/eclipse/directory/eclipse.app
理想情况下,我希望将配置文件保存在jar中,这样我就不会有一堆与我的程序相关的松散文件,并且可以简单地读取config.xml,而无需检查运行时创建的松散文件程序以前。我还应该提一下,config.xml已经存储在jar中了。
答案 0 :(得分:0)
尝试提及以下目录。 -C
选项可帮助您指定文件所在的目标目录。
jar uf jarFile.jar -C . "/some/directory/name.xml"