Saya tidak di depan IDE sekarang, hanya melihat spesifikasi API.
CodeSource src = MyClass.class.getProtectionDomain().getCodeSource();
if (src != null) {
URL jar = src.getLocation();
}
Saya ingin menentukan dari mana file JAR berasal. Apakah ini cara untuk melakukannya?
java
jar
class
classloader
chrisaycock
sumber
sumber
java -findjar -cp /some/path/with/libs/*.jar my.java.Class
->my.jar
.Jawaban:
Iya. Ini bekerja untuk semua kelas kecuali kelas yang dimuat oleh bootstrap classloader. Cara lain untuk menentukan adalah:
Sebagai notnoop menunjukkan
klass.getResource()
metode mengembalikan lokasi file kelas itu sendiri. Sebagai contoh:The
getProtectionDomain().getCodeSource().getLocation()
Metode mengembalikan lokasi file jar atau CLASSPATHsumber
getProtectionDomain().getCodeSource().getLocation()
jika Anda ingin mendapatkan lokasi file jarLihat
LiveInjector.findPathJar()
dari Lombok PatcherLiveInjector.java
. Perhatikan bahwa ini merupakan kasus khusus di mana file tersebut tidak benar-benar hidup dalam toples, dan Anda mungkin ingin mengubahnya.sumber
Menggunakan
Jika ini berisi beberapa entri maka lakukan beberapa operasi substring.
sumber
sumber