Сейчас я не нахожусь перед IDE, просто смотрю на спецификации API.
CodeSource src = MyClass.class.getProtectionDomain().getCodeSource();
if (src != null) {
URL jar = src.getLocation();
}
Я хочу определить, из какого JAR-файла принадлежит класс. Это способ сделать это?
java
jar
class
classloader
chrisaycock
источник
источник
java -findjar -cp /some/path/with/libs/*.jar my.java.Class
->my.jar
.Ответы:
Да. Он работает для всех классов, кроме классов, загружаемых загрузчиком классов начальной загрузки. Другой способ определить это:
Как указал notnoop,
klass.getResource()
метод возвращает местоположение самого файла класса. Например:getProtectionDomain().getCodeSource().getLocation()
Метод возвращает расположение файла фляги или CLASSPATHисточник
getProtectionDomain().getCodeSource().getLocation()
если хотите получить местоположение jar-файлаОформить заказ
LiveInjector.findPathJar()
из Ломбок ПатчерLiveInjector.java
. Обратите внимание, что это особые случаи, когда файл на самом деле не находится в банке, и вы можете изменить это.источник
использование
Если он содержит несколько записей, выполните некоторую операцию с подстрокой.
источник
источник