由于项目用到的Jar包或者Classpath内容较多,经常出现同时装载两份Class的情况,今天恰好在浏览时看到如下代码:
public class Whoami {
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
which(Whoami.class);
}
public static void which(Class aClass) throws Exception {
System.out.println(aClass.getProtectionDomain().getCodeSource().getLocation());
}
}
输出如下:
file:/D:/Applications/Workspaces/JBossTools/registration/build/classes/
检查你用的类到底是从哪个Jar包或者目录下装载的,这样以后类似问题也多了一个诊断的手段!哈哈哈
如果你怀疑你用的类的版本,那么请用这个方法吧!
参考文章:
http://www.0xcafefeed.com/2008/05/where-was-this-class-loaded-from/