Javaでクラスがロードされた場所を知る方法

Javaでクラスがロードされた場所を知る方法

JavaクラスがJavaのどこからロードされたかを知る方法を示すヒントを次に示します。

Javaの例

これは、「Address」というJavaクラスをロードし、「com.example.io」にパッケージ化して、このクラスがロードされた場所を出力する例です。

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();
    }
 }
}

出力

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

Javaクラス「Address」は「E:/workspace/HibernateExample/target/classes/com/example/io/Address.class」にあります