得到类所在的jar包路径

//理论上用class.getProtectionDomain().getCodeSource().getLocation().getFile();比较准. 
 //不过有两个需要注意的: 
 //1.返回如果是个文件说明是Jar包形式,返回的是jar,如果是目录说明是class,返回的是class所在的目录. 
 //2.如果加载class的classLoder是一个自定义,那个这个方法很可能不支持,因为自定义的classLoder可能没有完成这部分功能.

 public URL testDir()
 {
          return this.getClass().getProtectionDomain().getCodeSource().getLocation();
 }
 
 public static void main(String[] args) {
  
  String url=ClassPathXmlApplicationContext.class.getProtectionDomain().getCodeSource().getLocation().getFile();
  ///D:/WorkSpace/KISQuery/TestPlace/work/eclipse/kisquery/WebRoot/WEB-INF/lib/spring-context-2.5.6.jar
  System.out.println(url);
 }

posted @ 2013-12-30 12:57  linux,dev  阅读(869)  评论(0编辑  收藏  举报