# Datei im Projektpfad finden



## Hardi82 (25. Mai 2009)

Hallo Leute,

ich stehe momentan mal wieder auf'm Schlauch. Wie bekomme ich eine Datei geöffnet, die sich im Projektordner befindet? Also die Datei soll nicht in dem Ordner (Package) liegen, wie die Java-Klasse, sondern unterhalb des Projektordners in einem gesondertem Verzeichnis (bspw. "Templates"). ClassLoader gibt mir ja nur Klassen wieder. Gibts dafür auch was für normale Dateien wie bspw. XML-Dateien oder Bilder?

Grüße
Hardi


----------



## hammet (25. Mai 2009)

Auch der Classloader kann die dabei behilflich sein.

http://java.sun.com/j2se/1.5.0/docs/api/java/lang/ClassLoader.html#getResources(java.lang.String)


----------



## Hardi82 (25. Mai 2009)

Hm, hilft mir erstmal nicht weiter. Wenn ich bspw. eingebe:


```
URL url = this.getClass().getResource("dateiname.txt");
```

dann ist url = null. Also scheint er die Datei nicht zu finden. Oder hab ich da einen Denkfehler?


----------



## hammet (25. Mai 2009)

Bei mir funktioniert es mit 

```
URL url = this.getClass().getResource("/dateiname.txt");
```


----------



## Hardi82 (27. Mai 2009)

Ich hab es mal mit deinem Beispiel versucht, funktioniert allerdings dennoch nicht. Meine Datei liegt im Pfad "Projektordner->resources". Ich hab es auch mit der Angabe des Ordners versucht:


```
URL url = this.getClass().getResource("resources/dateiname.txt");
```

Hat aber auch nicht funktioniert. Irgendwas muss ich noch übersehen.


----------



## hammet (27. Mai 2009)

Probier mal 


```
URL url = this.getClass().getResource("/resources/dateiname.txt");
```

Und was ist in deinem Classpath eingetragen?


----------



## zeja (27. Mai 2009)

Wie sieht denn deine Projektstruktur aus? Handelt es sich um ein Mavenprojekt? Wo liegt die Klasse im Verhältnis zu der Resource die du laden willst?


----------



## Hardi82 (28. Mai 2009)

Ich habe eine Standard Eclipse-Java-Projekt Struktur:


```
projekt
  |-resources
  |-src
       |-de
           |-company
                 |- ...
  |-etc.
```


----------



## zeja (28. Mai 2009)

Bei New - Java Project ist das aber kein Standard.

Wie auch immer: Liegt das Bild mit im Jar bzw. im bin/classes Ordner? Liegt das Bild in einem Package?


----------



## hammet (28. Mai 2009)

Ich geh mal davon aus, dass er noch kein jar benutzt. 
Und er meinte ja, dass sich das Bild im Ordner Resources befindet.


Was ist denn an der Struktur nicht Standart? (also bis auf "resource")


----------



## Hardi82 (29. Mai 2009)

Also den "resource"-Ordner habe ich natürlich manuell eingefügt und die weiteren "Standard"-Ordner wollte ich jetzt nicht aufliste. Das Bild liegt somit auch nicht im bin/classes. Und ein Jar-File habe ich tatsächlich noch nicht generiert. Ist dies denn dafür notwendig? Wenn ich den Pfad manuell in Form von 
	
	
	



```
new File("resources/Test.txt")
```
 angebe, dann wird die Datei ja auch geladen. Halt nur nicht über die "Resourcesuche".


----------



## zeja (29. Mai 2009)

Wenn du etwas mit ins Jar haben willst, dann müßtest du das schon in den src Ordner mit in ein entsprechendes Package legen. Oder du musst eclipse mitteilen dass der Resource Ordner mit dazu gehört (ich weiß gerade nicht wie...). Ansonsten gehts natürlich mit Maven auch sehr schön.

Mit dem ClassLoader kann man ja nur Dateien laden die mit im Jar legen. Für Dateien außerhalb des Jars ist der Weg über File richtig.


----------



## Hardi82 (29. Mai 2009)

Wahrscheinlich ist da mein Denkfehler. Eclipse scheint somit den Resource-Ordner nicht mit einzubeziehen. Ich werd mal schauen, wie ich Eclipse dazu bekomme, den Ordner mit ins "Jar" zu packen, ohne dass ich ihn im Projekt extra in den src-Ordner verschieben muss. Das möchte ich nämlich nach Möglichkeit vermeiden. Danke für eure Hilfe.

Gruß
Hardie


----------

