Pfad des ausgeführten Programms (Jar-Datei) ermitteln: Unterschied zwischen den Versionen
Aus Byte-Welt Wiki
Zur Navigation springenZur Suche springenK |
K |
||
Zeile 8: | Zeile 8: | ||
import java.net.URISyntaxException; | import java.net.URISyntaxException; | ||
− | + | public class JarLocalizer { | |
− | / | + | /** |
− | + | * Gibt den Pfad der laufenden Anwendung zurück. | |
+ | * | ||
+ | * @return der Pfad der laufenden Jar-Datei | ||
+ | */ | ||
+ | public static String getCurrentJarPath() { | ||
String path = getRunnungJar(); | String path = getRunnungJar(); | ||
if (path.endsWith(".jar")) { | if (path.endsWith(".jar")) { | ||
Zeile 19: | Zeile 23: | ||
} | } | ||
− | / | + | /** |
− | + | * Gibt den absoluten Pfad (einschließlich Name der aktuell laufenden .class-/Jar-Datei) zurück | |
+ | * | ||
+ | * @return der absolute Pfad der laufenden Jar-Datei | ||
+ | */ | ||
+ | public static String getRunningJar() { | ||
final CodeSource source = this.getClass().getProtectionDomain().getCodeSource(); | final CodeSource source = this.getClass().getProtectionDomain().getCodeSource(); | ||
if (source != null) { | if (source != null) { | ||
Zeile 32: | Zeile 40: | ||
return null; | return null; | ||
} | } | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Version vom 27. Dezember 2021, 18:34 Uhr
Manchmal steht man vor der Frage, wie man das Verzeichnis der aktuell laufenden Java-Anwendung ermittelt.
Also wo befindet sich die aktuell ausgeführte Datei (.jar oder .class) im Datei-System?
Folgender Code ermittelt den Pfad und ggf. den Namen der aktuell laufenden Anwendung (ausführbare Jar-Datei) bzw. den Pfad der Bytecode-Datei:
import java.net.URISyntaxException;
public class JarLocalizer {
/**
* Gibt den Pfad der laufenden Anwendung zurück.
*
* @return der Pfad der laufenden Jar-Datei
*/
public static String getCurrentJarPath() {
String path = getRunnungJar();
if (path.endsWith(".jar")) {
return path.substring(0, path.lastIndexOf(System.getProperty("file.separator")) + 1);
}
return path;
}
/**
* Gibt den absoluten Pfad (einschließlich Name der aktuell laufenden .class-/Jar-Datei) zurück
*
* @return der absolute Pfad der laufenden Jar-Datei
*/
public static String getRunningJar() {
final CodeSource source = this.getClass().getProtectionDomain().getCodeSource();
if (source != null) {
try {
return source.getLocation().toURI().getPath();
} catch (URISyntaxException ex) {
Logger.getLogger(ProjectSettings.class.getName()).log(Level.SEVERE, null, ex);
JOptionPane.showMessageDialog(null, ex.getLocalizedMessage(), ex.getClass().getName(), JOptionPane.ERROR_MESSAGE);
}
}
return null;
}
}
getCurrentJarPath()
gibt den Pfad dieser Anwendung zurück (benötigt dazu die getRunnungJar()-Methode)getRunnungJar()
gibt den absoluten Pfad (einschließlich Name der laufenden Jar-Datei) zurück