This example illustrates how to get the class loaded path. If you are aware of the java.lang.Class, it has methods for knowing the details of a class. There are many details this object can reveal us, one of the method defined in that class is Class.getProtectionDomain() which is useful for getting the source code path by calling the another method Class.codeSource(). Once we get the CodeSource, getLocation() method returns the path of the class file in the java.net.URL object.
Note that, each instance has “class” variable which returns the java.lang.Class for that particular object.
Lets look this example.
ClassLoadedFromExample.java
package infosys.net.core; import java.net.URL; import java.security.CodeSource; import java.security.ProtectionDomain; /** * Get class loaded path example * * @author Krishna * */ public class ClassLoadedFromExample { public static void main(String[] args) { new ClassLoadedFromExample().getClassLocation(); } /** * Get the location of the class loaded path. */ private void getClassLocation() { //Get the class object Class<?> classVar = this.getClass(); //Get the ProtectionDomain ProtectionDomain protectDomain = classVar.getProtectionDomain(); //Get the CodeSource CodeSource codeSource = protectDomain.getCodeSource(); //Get location from the CodeSource URL fileLocation = codeSource.getLocation(); //Print the location of the class System.out.println("Class Loaded From : " + fileLocation); } }