если я знаю класс, как я могу узнать, из какой это банки? - PullRequest
4 голосов
/ 01 февраля 2010

сейчас я мог бы использовать clazz.getClassLoader (). GetResource (class.getName ()), затем я подставил URL-адрес, чтобы узнать местоположение файла jar, но я действительно хочу знать, есть ли лучший способ сделать это .

есть ли API для этого? спасибо.

1 Ответ

4 голосов
/ 01 февраля 2010

Если ваш класс называется Foo

URL classLocation = Foo.class.getProtectionDomain().getCodeSource().getLocation()

classLocation будет содержать URL, с которого был загружен класс. Либо папка для отдельного класса, либо jar / zip.

...