Slyh: Verzeichnis ausgeben

Beitrag lesen

Hallo,

Kurze einfache Frage:
wie kann ich mir das Verzeichnis ausgeben lassen, in dem sich die class Dateien eines Java-Projektes befinden, sprich, das Verzeichnis, in dem die Main-Methode liegt?

Das kannst du z.B. über das CodeSource-Objekt eines Class-Objekts rausfinden.

Etwa so:
    CodeSource classCodeSource = getClass().getProtectionDomain().getCodeSource();
    URL classLocation = classCodeSource.getLocation();

Je nachdem ob sich die Class-Datei in einem JAR-Archiv befindet oder direkt
im Dateisystem abgelegt ist, wirst du entweder eine file:- oder eine jar:-URL
erhalten. Davon ausgehend kannst du dann weiterschauen.

Beachte aber, daß eine class-Datei theoretisch zur Laufzeit generiert und
bekannt gemacht werden kann, so daß die oben beschriebene Methode nicht
zwingend funktionieren muß.

Google ggf. mal nach "getProtectionDomain getCodeSource" um nähere Ausführungen
zu diesem Thema zu erhalten.

Gruß
Slyh