ClassA.class.getResource("ClassA.class").getPath() //得到带类名的路径,""中也可以是同目录下的文件名
ClassA.class.getResource("").getPath() //得到不带类名的路径
ClassA.class.getClassLoader().getSystemResource("").getPath();//得到class文件存放的根目录
ClassA.class.getClassLoader().getSystemResource("test/ClassA.class").getPath();//得到指定类类路径
注意,因为虚拟机执行的是class文件,所以,此处获得的都是基于class文件的位置,而不是java文件的位置。
此外,如果在web容器中采用上述方法取类路径的话是得不到的,具体原因不清楚。解决方法为(同样适用于本地运行)
Thread.currentThread().getContextClassLoader().getResource("").getPath()