Aktuelles Verzeichis ermitteln
-
Hi,
Ich habe eine Swing-App, bei der ich Dateien benötige, die eine Ordnerebene über der Klasse liegen, die ausgeführt wird (Sprich: die .class mit der main-Methode).
Meine Hauptklasse (MainFrame.class) befindet sich im Verzeichnis
(1) G:\programmieren\java\projects\code2html\classes\gui
In dieser Klasse habe ich folgende Methode:private void readSchemas() throws IOException { System.out.println("curDir: " + new File(".").getAbsolutePath()); System.out.println("user.dir: " + System.getProperty("user.dir")); System.out.println("user.home: " + System.getProperty("user.home")); // ... }
Wenn ich die Klasse mit dem java-Interpreter aufrufe, bekomme ich folgende Ausgabe:
C:\>java -classpath G:\programmieren\java\projects\code2html\classes gui.MainFrame
curDir: C:\.
user.dir: C:\
user.home: C:\Dokumente und Einstellungen\florianFür mich ist dieses Verhalten absolut nicht nachvollziehbar.
mit new File(".") oder System.getProperty("user.dir") müsste ich doch das aktuelle Verzeichnis (sprich: (1)) bekommen.
Kann mir jemand dieses Verhalten erklären und mir sagen, wie ich das aktuelle Verzeichnis bekomme?Danke,
flo
-
Du rufst dein Programm von C:\ auf, also ist dies auch dein aktuelles Verzeichnis.
-
Du rufst dein Programm von C:\ auf, also ist dies auch dein aktuelles Verzeichnis.
1. Bekomme ich als user.dir immmer C:\ angezeigt, unabhängig davon, auf welcher Partition ich mich befinde.
2. Sollte System.getProperty("user.dir"); das Verzeichnis zurückgeben, in dem die Main-Klasse aufgerufen wurde und nicht den Laufwerksbuchstaben