Search code examples
jarclassloader

if i know a class, how can i know which jar it is from?


for now i could use clazz.getClassLoader().getResource(class.getName()), then i substring the URL to get the jar file's location, but i really want to know if there is any better way to do it.

is there any API for this? thank you.


Solution

  • If your class is called Foo

    URL classLocation = Foo.class.getProtectionDomain().getCodeSource().getLocation()
    

    classLocation will contain the URL where the class was loaded from. Either a folder for a stand alone class or a jar/zip.