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

  • BenjiManTV

    BenjiManTV

    20 Mart 2011
  • Chuck Testa

    Chuck Testa

    14 AĞUSTOS 2011
  • Kupa World

    Kupa World

    1 EYLÜL 2011