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

  • Abbeydabby0277's channel

    Abbeydabby02

    9 ŞUBAT 2012
  • Deany Boii

    Deany Boii

    27 Kasım 2007
  • Virtual Riot

    Virtual Riot

    19 Mayıs 2011