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

  • AlaskanGrizzly

    AlaskanGrizz

    30 EKİM 2009
  • Michael Lummio

    Michael Lumm

    25 Mayıs 2007
  • THE RED DRAGON

    THE RED DRAG

    6 ŞUBAT 2009