Gibt es eine Möglichkeit für Java-Programm, seinen Speicherort im Dateisystem zu bestimmen?
Sie können CodeSource#getLocation()
Dafür. Die CodeSource
ist verfügbar unter %Co_de% . Die ProtectionDomain#getCodeSource()
wiederum ist verfügbar von ProtectionDomain
.
Dies gibt den genauen Ort des Class#getProtectionDomain()
zurück.
Update : laut den Kommentaren ist es anscheinend schon im Klassenpfad. Sie können dann einfach Class
verwenden. , in dem Sie den root-package-relativen Pfad übergeben.
Sie können es sogar als ClassLoader#getResource()
mit InputStream
.
Das ist auch die übliche Art, verpackte Ressourcen zu verwenden. Wenn es sich in einem Paket befindet, verwenden Sie stattdessen beispielsweise ClassLoader#getResourceAsStream()
.