# Fehler beim Versuch eine Java Properties-Datei zu lesen (FileNotFoundException)



## Fools (21. September 2010)

Hallo Javanesen! ;-)

Ich erhalte leider eine Fehlermeldung (FileNotFoundException), wenn ich versuche eine von mir angelegte Property-Datei zu lesen. Und im Moment weiß ich leider nicht was ich falsch mache.

Der Dateiname der Property-Datei:
*DBConnectionUsingDMC.properties*

Der Java-Code, der versucht die Datei zu laden/lesen:


```
try
{
  BufferedInputStream stream = new BufferedInputStream(new FileInputStream("DBConnectionUsingDMC.properties"));
}
catch (FileNotFoundException exc)
{
  exc.printStackTrace();
}
```

Der Debugger springt auch gleich in den catch-Block rein.

Was mache ich falsch?

Sowohl die Property-Datei als auch die Java-Klasse mit dem o. g. Code befinden sich in einem von mir angelegten Package namens "model" im Source-Ordner (src).


Für Hilfe wäre ich euch dankbar.

EDIT:
Das habe ich auch schon versucht mit demselben Ergbnis:

```
BufferedInputStream stream = new BufferedInputStream(new FileInputStream("src/model/DBConnectionUsingDMC.properties"));
```

Und das hier:

```
FileInputStream stream = new FileInputStream("src/model/DBConnectionUsingDMC.properties");
```

Die Datei liegt definitiv im Verzeichnis:
src/model/DBConnectionUsingDMC.properties


----------



## Fools (21. September 2010)

Ein paar zusätzliche Informationen:

Mein Projekt - ein Dynamic Web Project - entwickle ich mit Eclipse Java EE IDE. Im Hintergrund läuft ein Apache Tomcat 6.0.29-Server, der mein Java-Code verarbeitet.

Ich hab nämlich jetzt mal ein normales Java-Projekt in Eclipse erstellt (ohne dass es von einem Server im Hintergrund verarbeitet werden muss) und und in diesem Projekt das Package (model) und die gleiche Datei (DBConnectionUsingDMC.properties) erstellt. Hier kann ich ohne Probleme auf die Datei zugreifen mit:


```
FileInputStream stream = new FileInputStream("src/model/DBConnectionUsingDMC.properties");
```


Gibt es irgendeine Java-Methode, mit der ich abfragen kann in welchem aktuellen Verzeichnis sich die ausführende Java-Klasse gerade befindet?


----------



## twagi1232010 (21. September 2010)

Hi,

wenn Deine Datei immer im Classpath liegt, kannst Du sie auch direkt daraus laden.

z.B. mit

this.getClass.getResourceAsStream("DBConnectionUsingDMC.properties")

Vielleicht hilft Dir das weiter.

Gruß twagi


----------



## Fools (22. September 2010)

Danke twagi1232010.

Das hat geklappt.

Noch ne kleine Frage: Klappt der Aufruf auch dann noch, wenn die Anwendung auf einem Apache Tomcat Server produktiv geht oder muss ich bedenken haben, dass er dann die Datei wieder nicht findet? Ich hab gestern festgestellt, dass ich mich mit diesen ganzen Pfaden irgendwie nicht auskenn...


----------



## twagi1232010 (23. September 2010)

Hi,

solange Deine Property-Datei im Classpath liegt sollte sie immer gefunden werden. Auch wenn Du alles auf Deinem Tomcat deployst.

Gruß twagi


----------

