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」にあります