Java How To
 


Woher hat die JVM eine Klasse geladen?

How To ...

Wie bekommt man heraus, woher die JVM eine Klasse geladen hat?

Hintergründe

Klassen werden dynamisch durch einen ClassLoader in die JVM geladen. Man kann erfragen von wo (Dateisystem, Jar, URL, ...) eine Klasse geladen wurde.

So geht's

Man ruft die Methoden-Folge getProtectionDomain().getCodeSource().getLocation() auf:

  URL codeDir = MyClass.class.getProtectionDomain().getCodeSource().getLocation();
		

oder

		  
  String codedir = MyClass.class.getProtectionDomain().getCodeSource()
                          .getLocation().toURI().getPath();