你知道你的类是从哪个文件中装载的吗?
由于项目用到的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/
?
?
?
this.getClass().getResource(".");// 或this.getClass().getResource("/");