获取java中已经加载类的来源地址

java可以从本地,网络加载一个类,那么如何得知一个已经加载好的类的来源地址呢?
参照下面的案例即可:

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.mkyong.io.Address");		
		ProtectionDomain pd = cls.getProtectionDomain(); 
		CodeSource cs = pd.getCodeSource(); 
		URL url = cs.getLocation();
		System.out.println(url.getFile());
	
	}catch(Exception ex){
		ex.printStackTrace();
	}
 }
}


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

即com.mkyong.io包下的类Address是从/E:/workspace/HibernateExample/target/classes/加载来的。

猜你喜欢

转载自darrenzhu.iteye.com/blog/2264741