1 File f = new File(WebPath.class.getResource("/").getPath()); 2 String path = f.getParentFile().getParent();
第一行获取到的是classpath的路径如:file:/E:/Workspace_idea/chicken/target/test-classes/ 此处是用junit跑的
第二行获取到 E:\Workspace_idea\chicken 正确的项目路径
Test.class.getResource("/");//定位到classpath路径下
Test.class.getClassLoader().getResource("");//与上面等价,定位到classpath路径下
=============================================================================================================================================================================================================
附,关于getResource的解析
class.getResource()的用法
- //取得classes顶级目录下的/xxx/yyy.txt文件
- System.out.println(Test.class.getResource("/xxx/yyy.txt"));
- //取得本class的上路径
- System.out.println(Test.class.getResource(Test.class.getSimpleName() + ".class"));
- //取得classes顶级目录下的/xxx/yyy.txt文件
- System.out.println(Test.class.getResource("/xxx/yyy.txt"));
- //取得本class的上路径
- System.out.println(Test.class.getResource(Test.class.getSimpleName() + ".class"));
结果:
file:/home/duanyong/workspace/test/bin/WEB-INF/classes/xxx/yyy.txt
file:/home/duanyong/workspace/test/bin/WEB-INF/classes/cn/duanyong/test/Test.class