# Auf Dateien innerhalb einer JAR Datei zugreifen



## zer0 (5. März 2010)

Hallo,

wie ist es möglich, auf Dateien, die auch in einem Java Archiv liegen, zu zugreifen?
Welchen Pfad muss ich verwenden, habe es schon mit getResource() versucht?

Danke für die Antworten


----------



## Kai008 (5. März 2010)

Ich glaube, der Pfad muss "/folder/file" heißen. Kann aber nicht so schwer sein, dass herauszufinden. Die Methode liefert dir dann eine URL, die du für den Zugriff benutzen kannst.


----------



## zer0 (10. März 2010)

Kai008 hat gesagt.:


> Ich glaube, der Pfad muss "/folder/file" heißen. Kann aber nicht so schwer sein, dass herauszufinden. Die Methode liefert dir dann eine URL, die du für den Zugriff benutzen kannst.



Hab es so Probiert, bin auch sämtliche Varianten mit Slash und Backlash durchgegangen aber klappt nicht.

Weiß sonst jemand wie ich auf Dateien innerhalb meiner JAR zugreife?


----------



## miffi (11. März 2010)

Howdie.

Dafür gibts eigentlich schon einige Threads hier im Forum.... Aber so bin ich ja nicht 
Um auf Dateien im Jar zuzugreifen würde ich den ClassLoader benutzen. Über diesen bekommst du ein URL-Objekt, mit dem du ein File, Icon usw. laden kannst. 

Beispiel mit ImageIcon:

```
ImageIcon myIcon = new ImageIcon(ClassLoader.getSystemResource("relativer/pfad/zum/bild.png")),
```

Gruß und viel Erfolg
miffi


----------



## zer0 (12. März 2010)

miffi hat gesagt.:


> Howdie.
> 
> Dafür gibts eigentlich schon einige Threads hier im Forum.... Aber so bin ich ja nicht
> Um auf Dateien im Jar zuzugreifen würde ich den ClassLoader benutzen. Über diesen bekommst du ein URL-Objekt, mit dem du ein File, Icon usw. laden kannst.
> ...



Hmm das funktioniert, aber leider nicht so gut.

Beim schreiben auf die Datei, die mir ClassLoader.getSystemResource() zurückliefert kommt immer dieser Fehler:

```
file:/C:/Documents%20and%20Settings/Username/My%20Documents/Eclipse/XMLTransform/bin/de/xml/Transform/xml/Settings.xml (Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch)
```

Kennt ihn jemand von euch, bzw sieht ein Fehler?


----------



## miffi (12. März 2010)

Howdie.

Wenn du Dateien aus JARs öffnest, hast du nur Lesezugriff. Es ist soweit ich weiß schon möglich diese zu ändern, allerdings nur unter großem Aufwand.
In meinen Projekten halte ich es so:
Dateien mit fester Datenhaltung (wie z.B. XML-Templates, fixe Config-Dateien usw.) hab ich im JAR, den Rest halte ich im Dateisystem.

Gruß
Alex


----------



## zer0 (12. März 2010)

miffi hat gesagt.:


> Howdie.
> 
> Wenn du Dateien aus JARs öffnest, hast du nur Lesezugriff. Es ist soweit ich weiß schon möglich diese zu ändern, allerdings nur unter großem Aufwand.
> In meinen Projekten halte ich es so:
> ...



Okay, gut das erklärt natürlich auch warum es klappt diese einzulesen und beim schreiben nicht. Dann werd ich das wohl umgehen und diese Dateien lediglich in den selben Ordner legen wie die .JAR

Vielen Dank!


----------

