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\florian

    Fü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


Anmelden zum Antworten