SORU
31 Aralık 2009, PERŞEMBE


Belirleyen jar bir sınıf değil dosya

Bir IDE hemen önünde, sadece API gözlük bakıyorum

CodeSource src = MyClass.class.getProtectionDomain().getCodeSource();
if (src != null) {
  URL jar = src.getLocation();

Bir sınıftan olduğunu belirlemek istiyorum, bu iş böyle mi?

Walter

CEVAP
31 Aralık 2009, PERŞEMBE


Evet. Sınıflar bootstrap classloader tarafından yüklendi hariç tüm sınıflar için çalışır. Belirlemek için başka bir yoludur:

Class klass = String.class;
URL location = klass.getResource('/' klass.getName().replace('.', '/') ".class");

Notnoop getProtectionDomain().getCodeSource().getLocation() yöntem döndürür belirttiği gibi sınıf konumunu kendisi dosyası. Örneğin:

jar:file:/jdk/jre/lib/rt.jar!/java/lang/String.class
file:/projects/classes/pkg/MyClass$1.class

klass.getResource() yöntem jar dosyasının konumunu veya SINIF döndürür

file:/Users/home/java/libs/ejb3-persistence-1.0.2.GA.jar
file:/projects/classes

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BSA

    BSA

    9 NİSAN 2012
  • Doug Bernards

    Doug Bernard

    7 Kasım 2007
  • Ryan Ha

    Ryan Ha

    9 NİSAN 2006