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

Aus Byte-Welt Wiki
Zur Navigation springenZur Suche springen
K
Zeile 2: Zeile 2:
  
 
<code=java>
 
<code=java>
private String getJarPath() {
+
    //gibt den Pfad ohne der Jar-Datei dieser Anwendung zurück
  final CodeSource source = this.getClass().getProtectionDomain().getCodeSource();
+
    private String getCurrentJarPath() {
  if (source != null) {
+
        String path = getJarPath();
      return source.getLocation().getPath();
+
        if(path.endsWith(".jar")) {
  }
+
            return path.substring(0, path.lastIndexOf("/"));
  return null;
+
        }
}
+
        return path;
 +
    }
 +
   
 +
    //gibt den absoluten Pfad (einschließlich Name der Jar-Datei) zurück
 +
    private String getJarPath() {
 +
        final CodeSource source = this.getClass().getProtectionDomain().getCodeSource();
 +
        if (source != null) {
 +
            return source.getLocation().getPath();
 +
        }
 +
        return null;
 +
    }
 
</code=java>
 
</code=java>
 +
 +
Die Methoden dieses Beispiels können unabhängig von einander aufgerufen werden und geben dann unterschiedliche Pfad-Inhalte zurück.<br>
 +
*<code>getCurrentPath()</code> gibt den Pfad (ohne den Namen der Jar-Datei) dieser Anwendung zurück
 +
*<code>getPath()</code> gibt den absoluten Pfad (einschließlich Name der Jar-Datei) zurück
  
 
[[Kategorie:Java]]
 
[[Kategorie:Java]]
 
[[Kategorie:Java-Codeschnipsel]]
 
[[Kategorie:Java-Codeschnipsel]]

Version vom 28. November 2017, 16:28 Uhr

Folgender Code ermittelt den Pfad der aktuell laufenden Anwendung (ausführbare Jar-Datei):

<code=java>

   //gibt den Pfad ohne der Jar-Datei dieser Anwendung zurück
   private String getCurrentJarPath() {
       String path = getJarPath();
       if(path.endsWith(".jar")) {
           return path.substring(0, path.lastIndexOf("/"));
       }
       return path;
   }
   
   //gibt den absoluten Pfad (einschließlich Name der Jar-Datei) zurück
   private String getJarPath() {
       final CodeSource source = this.getClass().getProtectionDomain().getCodeSource();
       if (source != null) {
           return source.getLocation().getPath();
       }
       return null;
   }

</code=java>

Die Methoden dieses Beispiels können unabhängig von einander aufgerufen werden und geben dann unterschiedliche Pfad-Inhalte zurück.

  • getCurrentPath() gibt den Pfad (ohne den Namen der Jar-Datei) dieser Anwendung zurück
  • getPath() gibt den absoluten Pfad (einschließlich Name der Jar-Datei) zurück