# JAR-File mit XML-Datei



## Kenta1561 (9. Aug 2016)

Hallo,

ich habe ein Programm geschrieben welches eine XML-Datei benutzt um paar kleine Daten abzuspeichern. Nun wollte ich das Programm als JAR-Datei exportieren und ich musste natürlich den Pfad zur XML-Datei ändern, damit das Programm auch in einer JAR-Datei funktioniert.

Hier ein Ausschnitt aus meinem Programm:
Vorher:

```
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
doc = builder.parse(new File("/main/scripts/list.xml"));
```
Nachher:

```
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
doc = builder.parse(Watchlist.class.getClassLoader().getResourceAsStream("main/scripts/watchlist.xml"));
```

Nun kann die XML-Datei gelesen werden, aber nach dem Modifizieren des DOM-Trees muss ja natürlich die Datei wieder geschrieben werden, jedoch weiß ich nicht, wie das geht. Ich habe natürlich auch gegoogelt, fand aber keine passende Lösung.
Hier die Problemstelle:
Vorher:

```
TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult sr = new StreamResult(new File("/main/scripts/list.xml"));
transformer.transform(source, sr);
```
Nachher:
Noch keine Lösung gefunden 

Ich verstehe ja, wie das beim Lesen funktioniert, da kann man ja mit getResourceAsStream() ein Objekt der Klasse InputStream als Parameter an die Methode parse() vom DocumentBuilder übergeben (wenn ich das richtig verstanden habe). Aber ich verstehe nicht, wie man das Gleiche halt nur für ein OutputStream machen kann.

LG
Kenta1561


----------



## AndyJ (11. Aug 2016)

Dein Jar-Archive enthaelt ja dein Programm und ggfs. einige Resourcen. Da schreibt man keine Nutzerdaten rein (technisch wuerde es natuerlich gehen - ein jar ist ein zip-File). Schreibe die Daten doch einfach ins Nutzerverzeichnis. Das bekommst du via System.getProperty("user.dir")

Andy


----------

