2017-06-13 208 views
0

我正在尝试对存储在Java中的jar文件中的xml文件进行更改。在jar中替换.xml文件

我的程序读取从罐子xml文件,使用使得它的几个变化:

javax.xml.parsers.DocumentBuilder 
javax.xml.parsers.DocumentBuilderFactory 
org.w3c.dom.Document; 

这工作没有任何问题。然后我写使用下面的代码行到一个新的XML文件,这些变化:

\t \t TransformerFactory transFactory = TransformerFactory.newInstance(); 
 
\t \t Transformer trans = transFactory.newTransformer(); 
 
\t \t DOMSource source = new DOMSource(doc); 
 
\t \t File tempStorage = new File("/some/directory/config.xml"); 
 
\t \t StreamResult result = new StreamResult(tempStorage); 
 
\t \t trans.transform(source, result);

这完美的作品。在此之后,我使用以下控制台命令的XML文件添加到罐子:

jar uf jarFile.jar "/some/directory/name.xml" 

这增加了XML文件到指定的目录内的罐子。我想将它添加到jar的基本目录中。例如,当我解开罐子我想要的文件夹结构是这样的:

jarFolder/config.xml 

jarFolder/some/directory/config.xml 

与更换临时存储目录只是“config.xml中”不工作,因为我我运行通过Eclipse的程序,它存储文件为:

jarFolder/eclipse/directory/eclipse.app 

理想我想保持罐子中的配置文件,所以我没有帮我的程序关联松散的文件,并能小号意味着读取config.xml而不必检查之前运行程序所创建的松散文件。我还应该提到config.xml已经存储在jar中了。

回答

0

请尝试提及下面的目录。 -C选项可帮助您指定文件所需的目标目录。

jar uf jarFile.jar -C . "/some/directory/name.xml"