Pfad des ausgeführten Programms (Jar-Datei) ermitteln: Unterschied zwischen den Versionen
Aus Byte-Welt Wiki
Zur Navigation springenZur Suche springenK |
K |
||
Zeile 1: | Zeile 1: | ||
− | Manchmal steht man vor der Frage, wie man das Verzeichnis der aktuell gestarteten Java-Anwendung ermittelt. Also wo befindet sich die ausgeführte | + | 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]] der aktuell laufenden Anwendung (ausführbare [[JAR-Datei|Jar-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> | <code=java> | ||
− | //gibt den Pfad dieser | + | //gibt den Pfad dieser Jar-Datei zurück |
private String getCurrentJarPath() { | private String getCurrentJarPath() { | ||
String path = getJarPath(); | String path = getJarPath(); | ||
Zeile 13: | Zeile 13: | ||
} | } | ||
− | //gibt den absoluten Pfad dieser Anwendung zurück | + | //gibt den absoluten Pfad inklusive Dateiname dieser Anwendung zurück |
private String getJarPath() { | private String getJarPath() { | ||
final CodeSource source = this.getClass().getProtectionDomain().getCodeSource(); | final CodeSource source = this.getClass().getProtectionDomain().getCodeSource(); |
Version vom 17. Dezember 2017, 17: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:
<code=java>
//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; }
</code=java>
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