2017-06-13 205 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"