FileInputStream findet nur absoluten Pfad, keinen Relativen ?!

Status
Nicht offen für weitere Antworten.

megachucky

Bekanntes Mitglied
Hallo.

Folgender Code:

Java:
        try {
			ldapProperties = new Properties();
//			FileInputStream in = new FileInputStream(
"C:\\workspaceBLA\\agreex\\service\\src\\impl\\de\\basisagree\\agreex\\service\\impl\\comp\\auth\\ldap.properties");
			FileInputStream in = new FileInputStream("ldap.properties");
			
			ldapProperties.load(in);
			in.close();
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		String technischerUser = (String) ldapProperties.get("ldap.technischerUser");
		System.out.println(technischerUser);

Der Abruf über den absoluten Pfad funktioniert. Wenn ich einfach nur die Datei angebe (liegt im gleichen Verzeichnis wie diese Klasse hier - ist auch im Sun Tutorial so angegeben), kommt eine FileNotFoundException.

Kann mir das jemand erklären?

Welchen relativen Pfad muss ich hier angeben, damit es funktioniert?

Vielen Dank.
 
Zuletzt bearbeitet von einem Moderator:
S

SlaterB

Gast
die packages müssen mit rein,
schau dir einfach erstmal an, wo "ldap.properties" landet:

System.out.println(new File("ldap.properties").getAbsolutePath());

/ statt \\ ist einfacher
 

KrokoDiehl

Top Contributor
Relative Pfade findet er auch. Weißt du denn was das Arbeitverzeichnis vom Programm ist? Es heißt ja nicht, dass es das gleiche ist, wo auch die Code-Datei liegt.

Überprüft also mal das Arbeitsverzeichnis (via
Code:
 System.getProperty("user.dir")
).
 

megachucky

Bekanntes Mitglied
Danke schon mal für die Hinweise.

Proeprties Dateien am besten als Resource laden, sonst gibt es Probleme spätestens in Jars.

Was gibt es denn da für Probleme? Die Anwendung muss nämlich in JARs. Kannst du evtl. ein kurzes Beispiel posten, wie ich die Properties nun am besten lade?

Vielen Dank schon im voraus...
 
M

maki

Gast
In Jars gibt es gar keine Dateien mehr... sind nur noch Zip File Entries, da hilft dir java.io.File gar nix mehr.

Guter Artikel zum Thema:
Smartly load your properties - JavaWorld

Das gilt übrigens für alle Arten von Dateien die geladen werden, immer als Resource Laden sonst klappt's nicht in Jars.
 

megachucky

Bekanntes Mitglied
Ok, ich habe es nun so gelöst (also mit getResource):

Code:
        try {

        	InputStream in = DieseKlasse.class.getResourceAsStream("ldap.properties");
        	
        	ldapProperties = new Properties();	
			ldapProperties.load(in);
			in.close();
			
		} catch (FileNotFoundException ex) {
// todo
		} catch (IOException ex) {
// todo
		}

Wie auch im JavaWorld-Artikel wird weiterhin "Properties" und InputStream" verwendet.
Aber durch "getResourceAsStream" können dann die Properties auch innerhalb des JARs gefunden werden, weil mit Resourcenzugriff auf Daten zugegriffen werden kann, die in ein Zip gepackt sind. Denn innerhalb eines JARs (also ZIPs) sieht man zwar mit Winzip noch die Dateien, aber in Wirklichkeit sind sie ein binäres Format, nur das Tool ermöglicht das Ansehen...

Habe ich das richtig verstanden?
 
M

maki

Gast
Habe ich das richtig verstanden?
Ja :)

Wird dir viel Ärger ersparen und uns ein paar Threads mit Titeln wie "Anwendung läuft, aber als Jar fliegt eine NulPointerException" und ähnliches ;)

[c]java.io.File[/c] ist eben nur für echte Dateien gedacht.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
R FileInputStream findet Datei nicht Java Basics - Anfänger-Themen 5
B OutputStream in FileInputStream? Java Basics - Anfänger-Themen 9
W Konstruktor von FileInputStream nicht gefunden Java Basics - Anfänger-Themen 18
B FileInputStream entpacken und Zeile für Zeile entpacken Java Basics - Anfänger-Themen 1
V FileInputStream - read() Java Basics - Anfänger-Themen 2
D String in FileInputStream umwandeln Java Basics - Anfänger-Themen 2
N FileInputstream und BinaryStream Java Basics - Anfänger-Themen 3
V FileInputStream auf ein swt.Image Java Basics - Anfänger-Themen 6
C FileInputStream read() Overflow Problem Java Basics - Anfänger-Themen 6
C Datentypen Rückgabewert von "new FileInputStream" Java Basics - Anfänger-Themen 4
K FileInputStream in Jar Java Basics - Anfänger-Themen 5
B FileInputStream schliessen: unreported Exception...must be caught Java Basics - Anfänger-Themen 6
W new FileInputStream() blockiert bei fifo (named pipe) Java Basics - Anfänger-Themen 2
G FileInputStream--> Zahlen aus Datei lesen Java Basics - Anfänger-Themen 7
G FileInputStream manipulieren Java Basics - Anfänger-Themen 6
B FileinputStream und BufferedInputStream Java Basics - Anfänger-Themen 12
P Fileinputstream to image? Java Basics - Anfänger-Themen 3
I FileInputStream global deklarieren Java Basics - Anfänger-Themen 2
G relativer Pfad bei FileInputStream Java Basics - Anfänger-Themen 11
T Unterschiedliche Werte beim FileInputStream Lesen Java Basics - Anfänger-Themen 2
F FileInputStream(File file) funzt net Java Basics - Anfänger-Themen 2
R FileInputStream.read() != FileReader.read(). Pls Help Java Basics - Anfänger-Themen 5
C FileInputStream sehr langsam Java Basics - Anfänger-Themen 5
Z FileInputStream bricht ab Java Basics - Anfänger-Themen 6
frau-u Probleme mit richtiger Verwendung von FileInputStream Java Basics - Anfänger-Themen 2
G FileInputStream Java Basics - Anfänger-Themen 6
W aus ObjectInputStream muß FileInputStream werden Java Basics - Anfänger-Themen 12
C FileInputStream und FileOutputStream Java Basics - Anfänger-Themen 4
berserkerdq2 Findet eine parallele Verarbeitung in Java bei Threads erst statt, wenn man die Methoden auch synchronized? Und wie sieht bei Conditions aus? Java Basics - Anfänger-Themen 8
sserio Binomialkoeffizient, wie findet man k und n heraus Java Basics - Anfänger-Themen 18
V Wer findet den Fehler :) Java Basics - Anfänger-Themen 12
P module-info findet zweites Paket nicht Java Basics - Anfänger-Themen 1
I Regex findet keine Treffer Java Basics - Anfänger-Themen 4
J Java findet plötzlich die Dateien im Projekt nicht mehr. Java Basics - Anfänger-Themen 12
D jsoup.select findet keine elemente Java Basics - Anfänger-Themen 2
J Compiler-Fehler Java findet main Klasse nicht Java Basics - Anfänger-Themen 16
K Schlüsselworte Nach Java update findet mdb Datei nicht Java Basics - Anfänger-Themen 6
A Vollkommene Zahlen: Findet keine Einzige Java Basics - Anfänger-Themen 9
O Javac findet die .java datei nicht Java Basics - Anfänger-Themen 2
snipesss Eclipse Neon findet meine Projekte nicht? Java Basics - Anfänger-Themen 1
snipesss IDE findet meine .txt Datei nicht! Java Basics - Anfänger-Themen 12
J .jar findet DATEI nicht Java Basics - Anfänger-Themen 2
A Umgebungsvariable CMD findet Hauptklasse nicht (hat bereits funktioniert) Java Basics - Anfänger-Themen 6
N Java find - findet nix Java Basics - Anfänger-Themen 1
S Classpath Findet die Klasse nicht classpath setzen? Java Basics - Anfänger-Themen 8
J JavaScript findet Applet Methode nicht Java Basics - Anfänger-Themen 2
C Jar Datei findet Bibliothek nicht Java Basics - Anfänger-Themen 2
K Programm findet datei in Jar nicht Java Basics - Anfänger-Themen 9
S Applet findet Klasse nicht Java Basics - Anfänger-Themen 7
C Variablen Findet Variable nicht Java Basics - Anfänger-Themen 13
E Executable jar-file findet class nicht Java Basics - Anfänger-Themen 12
T eclipse findet javax nicht Java Basics - Anfänger-Themen 4
M JDK installieren Glassfish, bzw. ArgoUML findet die JRE nicht Java Basics - Anfänger-Themen 4
H HashMap<Int, String> - Er findet die Int-Klasse nicht. Java Basics - Anfänger-Themen 3
J Compiler findet method nicht Java Basics - Anfänger-Themen 12
A CMD findet die java.class Datei nicht Java Basics - Anfänger-Themen 46
S jar-File findet Hauptklasse nicht Java Basics - Anfänger-Themen 9
T Ausgabe findet nicht statt Java Basics - Anfänger-Themen 4
A Findet Main class nicht Java Basics - Anfänger-Themen 12
P Datentypen Warum findet er diese methoden nicht? Java Basics - Anfänger-Themen 13
Fu3L Programm findet nach .jar-Export Dateien nicht Java Basics - Anfänger-Themen 3
C Testprogramm kann nicht compiliert werden - javac findet file nicht Java Basics - Anfänger-Themen 12
Z Programm findet MAIN Datei nicht Java Basics - Anfänger-Themen 2
N Compiler findet array in gleicher methode nicht Java Basics - Anfänger-Themen 4
M javac findet Oberklassedatei nicht Java Basics - Anfänger-Themen 7
GilbertGrape findet jar aus Classpath nicht Java Basics - Anfänger-Themen 4
C Wo findet man den Inhalt vordefinierter Methoden? Java Basics - Anfänger-Themen 15
B HashMap findet Key nicht Java Basics - Anfänger-Themen 2
Q Findet existierendes File auf Festplatte nicht Java Basics - Anfänger-Themen 6
M Wer findet den Fehler? Java Basics - Anfänger-Themen 19
G (csv)Datei lesen FindBug findet mgl. NullPointer - wie lösen Java Basics - Anfänger-Themen 3
M Deploy findet Datei nicht Java Basics - Anfänger-Themen 2
N Vergleich findet nicht statt. Java Basics - Anfänger-Themen 13
G Anwendung findet vorhandene Klasse nicht Java Basics - Anfänger-Themen 4
N Mein Applet findet -online- einfach die Klasse nicht ! Java Basics - Anfänger-Themen 6
E jedit findet javac nicht Java Basics - Anfänger-Themen 64
H JAR findet die main-class nicht Java Basics - Anfänger-Themen 9
I Hilfe wer findet mein Fehler in bei der Endlosschleife Java Basics - Anfänger-Themen 7
M Compiler findet main nicht Java Basics - Anfänger-Themen 4
H Anwendung findet Datei nicht Java Basics - Anfänger-Themen 2
A Programm findet keine wav-Dateien im jar Archiv Java Basics - Anfänger-Themen 4
T Totaler Anfänger findet Fehler nicht. Java Basics - Anfänger-Themen 13
G Programm findet andere .class-Dateien nicht Java Basics - Anfänger-Themen 6
R java findet nicht den neuesten JRE Java Basics - Anfänger-Themen 14
V Eclipse findet (meines Wissens) korrekte Klasse nicht Java Basics - Anfänger-Themen 3
G Public class??? Findet meine Klasse nicht. Java Basics - Anfänger-Themen 5
J Absoluten Pfad zu Java-Executable ermitteln? Java Basics - Anfänger-Themen 2
J Wie den absoluten Pfad der aktuellen Klasse herausbekommen? Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben