Konfigurationsdatei einlesen

jarobi

Mitglied
Guten Tag ,
ich möchte werte aus einer Konfigurationsdatei einlesen. Jetzt ist mein Problem dass er die Datei in meinem Workspace nicht findet

Code:

Java:
Properties properties = new Properties();
String propFileName = "XXX.properties";
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("propFileName");

      if (inputStream == null) {
          throw new FileNotFoundException("property file '" + propFileName
              + "' not found in the classpath");
      }

      properties.load(inputStream);

Mein Workspace ist so aufgebaut:

* Projekt
** src
** base

Im "base" ordner ist ein weitere Ordner config( /base/config) und in dieser ist die Konfigurationsdatei.

Habs mal mit dem direkten Pfad versucht hab mal am Classpath rumprobiert. Kann es sein das ich im Classpath einen bestimmten Eintrag setzen muss?

Mfg
jarobi
 

jarobi

Mitglied
Ja das hab ich auch gemacht . Trotzdem kommt egal was ich probiere dieselbe Exception.

"java.io.FileNotFoundException: property file 'thesaurus.properties' not found in the classpath"
 

VfL_Freak

Top Contributor
Moin,

das hängt u. U. davon ab, mit welcher Umgebung Du arbeitest.

Ich habe hier den Borland JBuilder, da gibt es dann die Manifestdatei <ProjektName>.mf
Hier ist der Classpath eingetragen
Java:
Main-Class: <ProjektName>.mainApp
Class-Path: log4j-1.2.8.jar jco.jar win32com.jar jspComm.jar Serialio.jar edtftpj.jar foxtrot-core-3.0.jar swingx-1.6.jar

Es sollte bspw. bei Eclpise auch irgendwo in den Projekteinstellungen zugreifbar sein ...

Vlt. hilft Dir das weiter!

Gruß
Klaus
 

jarobi

Mitglied
Es ist eine Eclipse Umgebung mit der ich eine Webanwendung baue.

Ich tippe ganz schwer das das Problem am Classpath liegt. Ich weiss halt nicht wie genau der Eintrag im Classpath lauten muss. Der Java Code an sich ist ja kein Problem, aber was genau muss ich in den Classpath eintragen? Mir ist klar das ich den Pfad zum ordner eintragen muss, nur wie schreibt man das syntaktisch richtig in den Classpath rein?
 

xjCoder

Aktives Mitglied
Hi,

jetzt habe ich auch noch eine Frage dazu:

Code:

Java:
Properties properties = new Properties();
String propFileName = "XXX.properties";
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("propFileName");

      if (inputStream == null) {
          throw new FileNotFoundException("property file '" + propFileName
              + "' not found in the classpath");
      }

      properties.load(inputStream);

Mein Workspace ist so aufgebaut:

* Projekt
** src
** base

Im "base" ordner ist ein weitere Ordner config( /base/config) und in dieser ist die Konfigurationsdatei.

Wenn ich das richtig verstehe, müsste Dein Pfad also so
Code:
String propFileName = "./base/config/XXX.properties";
aussehen...

Wenn dem so ist, dann müsste ein
Code:
System.out.println(new File(propFileName).exists());
doch true ergeben?!

Und wenn Du den InputStream mit
Code:
InputStream inputStream = new FileInputStream(new File(propFileName));
erzeugst,
dann dürfte etwas anderes als null herauskommen ...

Falls ich jetzt völlig daneben liege, bitte ich um eine 'milde Strafe' :oops:
 

xjCoder

Aktives Mitglied
...also ich habe mir ein Testprojekt unter eclipse angelegt und es funktioniert ausgezeichnet.
Im Verzeichnis des Projekts existieren folgende Verzeichnisse/Dateien:

  • bin/PropertyFileLoadTest.class
  • src/PropertyFileLoadTest.java
  • base/config/XXX.properties

Dementsprechend ist der Pfad zur Properties-Datei ./base/config/XXX.properties
Wichtig ist der Punkt als erster Wert der Pfadeingabe.

Java:
String propFileName = "./base/config/XXX.properties";
System.out.println(new File(propFileName).exists());
 
B

bygones

Gast
Java:
String propFileName = "./base/config/XXX.properties";
System.out.println(new File(propFileName).exists());
das ist zu gefährlich... das klappt zb dann in eclipse, doch wenn das ganze als war bzw jar irgendwo liegt ist das nicht garantiert... daher resourcen am besten immer ueber getResources... holen
 

xjCoder

Aktives Mitglied
das ist zu gefährlich... das klappt zb dann in eclipse, doch wenn das ganze als war bzw jar irgendwo liegt ist das nicht garantiert... daher resourcen am besten immer ueber getResources... holen

Einverstanden, aber so weit ist es ja glaube ich noch nicht ...

Und da der Pfad irgendwie noch nicht zu passen scheint

Er gibt mir False, also findet die datei nicht.

wäre dies zumindest mal einen Test wert, oder?
 

jarobi

Mitglied
das ist zu gefährlich... das klappt zb dann in eclipse, doch wenn das ganze als war bzw jar irgendwo liegt ist das nicht garantiert... daher resourcen am besten immer ueber getResources... holen
Ja aus dem Grund nutze ich getResourceAsStream


Trotzdem funktioniert es ja bei dir, bei mir aber nicht. Da ich millionemal drübergeschaut habe kann ich auch irgendwelche Rechtschreibfehler oder falsche Ordnerstrukturen ausschliessen.
 

jarobi

Mitglied
So mittlerweile funktioniert es, aber auch nur wenn ich die Datei in den bin-Ordner stecke und den Pfad dann entsprechen so angebe ("./XXX.properties").
Der bin Ordner ist anscheinend mein Root Verzeichnis. Deshalb hat er auch mein base verzeichniss nicht gefunden da er auf der gleichen Ebene wie mein Bin Ordner liegt
-->
./base/config/XXX.properties
-> konnte ja nicht funktionieren da der "base-Ordner" sich auf der gleichen Ebene befindet und nicht eine Stufe unterm "bin-Ordner".

Wie muss den die Pfadangabe lauten damit ich vom Bin Ordner zu dem auf gleicher Ebene liegenden base Ordner gelange??
 

mvitz

Top Contributor
Du solltest den Ordner base/config zum Source-Folder machen. (In Eclipse rechtsklick drauf und dann Source-->Add to build path). Danach funktioniert auch der Aufruf
Java:
this.getClass().getClassLoader().getResourceAsStream("propFileName");
 

jarobi

Mitglied
Du solltest den Ordner base/config zum Source-Folder machen. (In Eclipse rechtsklick drauf und dann Source-->Add to build path). Danach funktioniert auch der Aufruf
Java:
this.getClass().getClassLoader().getResourceAsStream("propFileName");

Das ist ein projekt auf der Arbeit, ich kann da nicht einfach die Ordnerstruktur oder den Source Folder wechseln.
Das ganze müsste doch durch einen bestimmten Classpath Eintrag zu schaffen sein?
 

mvitz

Top Contributor
Klar müsste das. Deswegen macht man den Ordner ja zum Source-Folder, damit dieser von Eclipse automatisch mit nach /bin genommen wird (und alles was in /bin ist, ist bei Eclipse der Classpath). Direkt nach /bin kopieren darf man nicht, da Eclipse den Ordner z.B. beim Cleanen eines Projektes löscht.
 

jarobi

Mitglied
ok mal was anderes:

per FileInputStreamm würde das ohne Probleme funktionieren:

Java:
String propFileName = "./conf/XXX.properties"; 
BufferedInputStream inputStream = new BufferedInputStream(new FileInputStream(propFileName));

Da das ein relativer Pfad ist würde es doch auch ausserhalb meines Eclipse Project funktionieren, also verpackt als WAR irgendwo anderst nutzbar.....oder???
 

mvitz

Top Contributor
Nein.

Wenn deine Konfiguration z.B. in einem JAR ist, dann kann man darauf so nicht zugreifen. Ähnliches für ein WAR. Ein ApplicationServer muss das WAR nicht entpacken. Zudem geht dein Pfad so vom aktuellen Ausführungsverzeichnis aus los. Wenn du etwas selber über die Konsole startest, dann weißt du natürlich welches Verzeichnis das ist, aber welches Verzeichnis dein ApplicationServer nutzt, weißt du nun mal nicht.

Aus diesem Grunde wenn man nur lesen möchte immer den Classpath nutzen.
 
V

Vayu

Gast
davon ab, dass man schon die variable mit dem dateinamen übergeben sollte und nicht den variablennamen als String :)

Java:
this.getClass().getClassLoader().getResourceAsStream("propFileName");

vs.

Java:
this.getClass().getClassLoader().getResourceAsStream(propFileName);
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
HarleyDavidson Best Practice Wohin mit der Konfigurationsdatei für Desktopapplikationen? Allgemeine Java-Themen 3
B Lua als Konfigurationsdatei nutzen - ein Krampf Allgemeine Java-Themen 4
W Konfigurationsdatei für Java-App Allgemeine Java-Themen 11
S Auslesen einer Konfigurationsdatei Allgemeine Java-Themen 4
R Eigene Konfigurationsdatei für größere Projekte. Allgemeine Java-Themen 4
S Bookmark HTML Datei einlesen, alle Links erhalten und manche editieren..? (aktuell JSoup) Allgemeine Java-Themen 4
killig Textdatei einlesen und in HashMap speichern (duplikate entfernen) Allgemeine Java-Themen 12
N Statistische Auswertung von Logfiles (Einlesen, auswerten und grafische Aufbereitung von logfiles) mit Java Allgemeine Java-Themen 9
Master3000 Java Datei mehrmals einlesen Allgemeine Java-Themen 4
R Sonderzeichen aus Datei einlesen und in Datei ausgeben. Allgemeine Java-Themen 17
M Website Quelltext mit Java einlesen Allgemeine Java-Themen 10
L Datein einlesen. Allgemeine Java-Themen 5
S Rückgabe einer HttpURLConnection für eine Seite einlesen bei der man eingeloggt ist..? Allgemeine Java-Themen 5
Thallius Key/Value Table in Klasse einlesen Allgemeine Java-Themen 14
F Datei in String-Array einlesen Allgemeine Java-Themen 8
N Datei Zeilenweise Einlesen, Versteckte Zeichen Allgemeine Java-Themen 5
H Strategy Pattern - changeColor() Methode - input rgd oder hex einlesen Allgemeine Java-Themen 1
T Umlaute in Eclipse einlesen funktioniert nicht Allgemeine Java-Themen 16
Henrithebegiinerofjava Erste Schritte Werte in Eingabefelder einlesen und wiederholen lassen. Allgemeine Java-Themen 3
R .txt Datei einlesen und auf der Konsole ausgeben lassen Allgemeine Java-Themen 11
F Problem beim Einlesen einer Textdatei Allgemeine Java-Themen 12
K Datei (CSV-ähnlich) in Java einlesen & mit teil der Daten Graphen erstellen Allgemeine Java-Themen 9
J Input/Output Word Datei einlesen, verarbeiten und abspeichern Allgemeine Java-Themen 3
K RTF-Dokumente einlesen Allgemeine Java-Themen 1
E Compiler-Fehler Unicode Zeichen einlesen Allgemeine Java-Themen 1
S Variablen String[] Array per schleife in int[] einlesen Allgemeine Java-Themen 8
J Java 8 Datei einlesen Allgemeine Java-Themen 1
S Handschrift einlesen & darauf reagieren OCR Allgemeine Java-Themen 2
K Input/Output String aus einer Datei einlesen und in anderer Datei speichern Allgemeine Java-Themen 20
J Mehrere Wörter getrennt in eine Array einlesen, wie ? Allgemeine Java-Themen 7
R Datei einlesen mit Win7 Allgemeine Java-Themen 8
E Best Practice LaTeX aus Textdateien einlesen und bearbeiten Allgemeine Java-Themen 4
KaffeeFan Bilddatei einlesen und bearbeiten? Allgemeine Java-Themen 5
stylegangsta Mehrere html seiten einer Homepage einlesen und als Textdatei ausgeben Allgemeine Java-Themen 14
F Datei einlesen funktioniert nicht Allgemeine Java-Themen 3
T Geschlossen: Apache POI - Excel einlesen Allgemeine Java-Themen 0
J BufferedReader Datei einlesen Allgemeine Java-Themen 8
L Level einlesen Allgemeine Java-Themen 9
J Jar Datei mit anderer .jar einlesen Allgemeine Java-Themen 4
J Best Practice Java 8 Datei einlesen und verarbeiten Allgemeine Java-Themen 2
M Exceltabelle in Java erstellen und Werte einlesen Allgemeine Java-Themen 32
P Input/Output java.util.Scanner in einer Schleife und Exception-Behandlung: Einlesen einer Zahl Allgemeine Java-Themen 4
B Java - einlesen von Dateien und herausschneiden von XML Dokumenten Allgemeine Java-Themen 5
T xls-Datei per Apache Commons CsvParser einlesen UTF-8 Zeichen russische Zeichen Allgemeine Java-Themen 2
D Wörter aus Datei einlesen Allgemeine Java-Themen 9
D Input/Output Zeilen werden "ignoriert" beim Einlesen aus einer Textdatei Allgemeine Java-Themen 3
Ananaskirsche Input/Output Zeile aus Datei einlesen Allgemeine Java-Themen 10
N Einlesen einer Kostenmatrix, Verarbeitung mit Nearest Neighbor Allgemeine Java-Themen 1
OnDemand String aus html einlesen Allgemeine Java-Themen 2
H Excel Datei einlesen mit Apache POI Allgemeine Java-Themen 1
P Input/Output Datei einlesen per Scanner(f) - mit Cron gehts nicht Allgemeine Java-Themen 1
OnDemand Dateien einlesen und vergleichen Allgemeine Java-Themen 1
AssELAss XML Datei einlesen und anschließen formatiert ausgeben in Datei Allgemeine Java-Themen 0
L einfache Verzinsung mit for-Schleife & Ausschluss von Werten beim Einlesen Allgemeine Java-Themen 5
L Input/Output Datei einlesen und Inhalt in Array schreiben Allgemeine Java-Themen 3
MiMa Umlaute beim Einlesen von Dateinamen Allgemeine Java-Themen 12
C Verzeichnis ins JMenu einlesen Allgemeine Java-Themen 2
M Parameter-Datei einlesen (zeilenweise); Dateiintegrität Allgemeine Java-Themen 7
J TextArea einlesen, mit string Allgemeine Java-Themen 2
I Input/Output .csv Datei einlesen Allgemeine Java-Themen 4
Kenan89 Schnelleres Einlesen von Images Allgemeine Java-Themen 6
A TXT File einlesen unterschiedliche Zeilenlänge Allgemeine Java-Themen 9
A Input/Output Bild in Java einlesen und analysieren! Allgemeine Java-Themen 8
H Scanner soll einen Inputredirect einlesen, liest aber nicht jedes Wort ein. Allgemeine Java-Themen 3
R String einlesen Allgemeine Java-Themen 8
S Datei in File-Objekt mit UTF-8 einlesen Allgemeine Java-Themen 2
K XML Quelltext Website einlesen?! Allgemeine Java-Themen 3
M File einlesen während es beschrieben wird.. Allgemeine Java-Themen 6
S Spaltenweise einlesen Allgemeine Java-Themen 9
K JAVA Datei einlesen Allgemeine Java-Themen 2
S Input/Output Latin-9 (ISO 8859-15) Textdatei einlesen Allgemeine Java-Themen 2
M Erste Schritte alle xmlFiles in zugehörige pdfFiles einlesen Allgemeine Java-Themen 4
T XML einlesen Allgemeine Java-Themen 14
M Eclipse Stackoverflow beim Einlesen von großen Bilder in kd Baum Allgemeine Java-Themen 15
C Strings in Excel einlesen! Allgemeine Java-Themen 2
K htmlCode einlesen, Speicherüberlauf? zu viel code? Allgemeine Java-Themen 21
F JavaMail - Lokale eMail-Datei einlesen und parsen? Allgemeine Java-Themen 9
K CSV einlesen und speichern Allgemeine Java-Themen 7
Q Text Datei einlesen Allgemeine Java-Themen 27
T Liste mit GregorianCalendar-Objekten in List einlesen, mit Collection sortieren und ausgeben Allgemeine Java-Themen 3
M PDF einlesen mit PDFBox Allgemeine Java-Themen 3
L Benutzereingabe einlesen Allgemeine Java-Themen 5
M Einlesen einer Datei in Java Allgemeine Java-Themen 3
D class Datei einlesen Allgemeine Java-Themen 4
B StringBuilder von File einlesen Allgemeine Java-Themen 8
N Probleme mit Umlauten beim Einlesen Allgemeine Java-Themen 6
M Txt einlesen & Objekte erzeugen Allgemeine Java-Themen 2
E Leerzeichen verschwinden beim Einlesen von .txt-Dateien Allgemeine Java-Themen 5
A JExcel Formel einlesen Allgemeine Java-Themen 2
G Java PDF-Einlesen Allgemeine Java-Themen 9
H excel einlesen und in db schreiben Allgemeine Java-Themen 2
A Datei als Object einlesen und das Object als Singleton instance setzen. Allgemeine Java-Themen 13
B class dateien "einlesen" und objekte erzeugen Allgemeine Java-Themen 6
C Datei als ASCII text einlesen ? Allgemeine Java-Themen 16
M UTF-8 Datein einlesen, Zeichenproblem Allgemeine Java-Themen 9
H Textdatei (1GB) einlesen und verarbeiten Allgemeine Java-Themen 15
D Shortcut statt Datei einlesen Allgemeine Java-Themen 2
E HTML File mit Umlaute einlesen Allgemeine Java-Themen 8
G BigInteger aus DB nach einlesen in JAVA eingeklammert Allgemeine Java-Themen 3
trash mehrzeilige .txt einlesen/formatieren Allgemeine Java-Themen 8

Ähnliche Java Themen

Neue Themen


Oben