Pfad des ausgeführten Programms (Jar-Datei) ermitteln: Unterschied zwischen den Versionen

Aus Byte-Welt Wiki
KKeine Bearbeitungszusammenfassung
KKeine Bearbeitungszusammenfassung
Zeile 3: Zeile 3:
Folgender Code ermittelt den [[Pfad]] und ggf. den Namen der aktuell laufenden Anwendung (ausführbare [[JAR-Datei|Jar-Datei]]) bzw. den Pfad der Bytecode-Datei:
Folgender Code ermittelt den [[Pfad]] und ggf. den Namen der aktuell laufenden Anwendung (ausführbare [[JAR-Datei|Jar-Datei]]) bzw. den Pfad der Bytecode-Datei:


<code=java>
<syntaxhighlight lang="java">
     //gibt den Pfad dieser Jar-Datei zurück
     //gibt den Pfad dieser Jar-Datei zurück
     private String getCurrentJarPath() {
     private String getCurrentJarPath() {
Zeile 21: Zeile 21:
         return null;
         return null;
     }
     }
</code=java>
</syntaxhighlight>


*<code>getCurrentPath()</code> gibt den Pfad (ohne den Namen der Jar-Datei) dieser Anwendung zurück (benötigt dazu die getJarPath()-Methode)
*<code>getCurrentPath()</code> gibt den Pfad (ohne den Namen der Jar-Datei) dieser Anwendung zurück (benötigt dazu die getJarPath()-Methode)

Version vom 9. März 2018, 15:03 Uhr

Manchmal steht man vor der Frage, wie man das Verzeichnis der aktuell gestarteten Java-Anwendung ermittelt. Also wo befindet sich die ausgeführte Datei (.jar oder .class) im Datei-System und (von) wo wurde sie gestartet?

Folgender Code ermittelt den Pfad und ggf. den Namen der aktuell laufenden Anwendung (ausführbare Jar-Datei) bzw. den Pfad der Bytecode-Datei:

    //gibt den Pfad dieser Jar-Datei zurück
    private String getCurrentJarPath() {
        String path = getJarPath();
        if(path.endsWith(".jar")) {
            return path.substring(0, path.lastIndexOf("/"));
        }
        return path;
    }
    
    //gibt den absoluten Pfad inklusive Dateiname dieser Anwendung zurück
    private String getJarPath() {
        final CodeSource source = this.getClass().getProtectionDomain().getCodeSource();
        if (source != null) {
            return source.getLocation().getPath().replaceAll("%20", " ");
        }
        return null;
    }
  • getCurrentPath() gibt den Pfad (ohne den Namen der Jar-Datei) dieser Anwendung zurück (benötigt dazu die getJarPath()-Methode)
  • getJarPath() gibt den absoluten Pfad (einschließlich Name der Jar-Datei) zurück