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

  • AmeriiK_HD

    AmeriiK_HD

    16 AĞUSTOS 2012
  • MC JIN'S OLD YouTube CHANNEL

    MC JIN'S OLD

    2 Kasım 2008
  • Joseph Hayhoe

    Joseph Hayho

    20 Mayıs 2010