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

Aus Byte-Welt Wiki
Zur Navigation springenZur Suche springen
K
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 Jar-Datei im Datei-System und (von) wo wurde sie gestartet?
+
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 Anwendung zurück
+
     //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