我在Eclipse中使用像這樣創建和可執行的JAR文件使用一個外部XML文件
File matches = new File("matches.xml");
該文件位於默認包中的所有其他類的EML文件的Java應用程序。當我創建JAR時,它將它捆綁在XML文件中。我的應用程序要求我能夠對XML文件進行更改。我如何設置它,以便JAR可以引用自身之外的XML文件?
我在Eclipse中使用像這樣創建和可執行的JAR文件使用一個外部XML文件
File matches = new File("matches.xml");
該文件位於默認包中的所有其他類的EML文件的Java應用程序。當我創建JAR時,它將它捆綁在XML文件中。我的應用程序要求我能夠對XML文件進行更改。我如何設置它,以便JAR可以引用自身之外的XML文件?
我的應用程序要求我能夠對XML文件進行更改。
然後,您需要從Jar中提取它並將其保存在本地文件系統的某個位置。
查看How can an app use files inside the JAR for read and write?瞭解更多詳情。
如果您使用的是new File("matches.xml")
,它根本不會在jar文件中使用文件。它只會查看外部文件系統。
如果您需要能夠使用外部文件(如果存在)或jar文件中的版本作爲後備(fallback),則需要測試該文件的存在(File.exists()
)並使用Class.getResourceAsStream("matches.xml")
作爲回退行爲。
由於您希望將文件保存在jar外部並想更新它以便jar可以讀取,因此您可以將該文件放在jar所在的同一目錄中並使用以下代碼訪問文件
FileInputStream file = new java.io.FileInputStream("matches.xml");
所以這可以是目錄結構。
- matches\
- matches.jar
- matches.xml
這是一個非常脆弱的方式來形成'文件'。它不會適用於applet或應用程序。部署使用JWS或應用程序。從不向應用程序提供「cd」的批處理文件啓動。目錄.. – 2013-05-13 14:59:51