Comment savoir d’où une classe a été chargée en Java

Comment savoir d'où une classe a été chargée en Java

Voici une astuce pour montrer comment savoir d'où une classe Java a été chargée en Java.

Exemple Java

Voici un exemple pour charger une classe Java appelée "Address", package dans "com.example.io", et afficher l'emplacement à partir duquel cette classe a été chargée.

import java.net.URL;
import java.security.CodeSource;
import java.security.ProtectionDomain;

public class App{

    public static void main(String[] args) {

    try{

        Class cls = Class.forName("com.example.io.Address");
        ProtectionDomain pd = cls.getProtectionDomain();
        CodeSource cs = pd.getCodeSource();
        URL url = cs.getLocation();
        System.out.println(url.getFile());

    }catch(Exception ex){
        ex.printStackTrace();
    }
 }
}

Sortie

/E:/workspace/HibernateExample/target/classes/

La classe Java «Address» se trouve dans «E:/workspace/HibernateExample/target/classes/com/example/io/Address.class»