是无法得到源代码的目录位置的,最多只能获得当前这个类class文件所在的目录

解决方案 »

  1.   

    Class.forName("xxx").getName();获得的知识class文件,运行时源文件根本就没用啊
      

  2.   

    印象中用File是可以的,大不了循环取父目录
      

  3.   

    如果你想要知道 abc.def.Ghi 这个类在哪里你可以:
      1,如果你有这个类的的一个实例:  instance01 那么你可以这样获得:
          Url url = instance01.getClass().getResource("/abc/def/Ghi.class");
          String location = url == null? null:url.toString();
      2,如果你没有这个类的实例,那么:
          1,你用当前的ClassLoader寻找:
               Url url = Thread.currentThread().getContextClassLoader().getResources("/abc/def/Ghi.class");
               String location = url == null? null:url.toString();
          2,你用指定的某个ClassLoader寻找:
               //实例化你的ClassLoader: cl
               Class c = cl.loadClass("abc.def.Ghi");
               Url url = c.getResources("/abc/def/Ghi.class");
               String location = url == null? null:url.toString();location 就是你所需要的。