java中各种路径写法总结
这是我自己总结的,也写过代码实验过的,大家可以参考一下,要是发现什么错误或者需要补充的,还请大佬们指出来,非常感谢.
路径
绝对路径: 以 " / " 开头
相对路径: 以 " ./ " 开头,或开头什么都不写
" . . / ":上一级目录
File类中路径写法
File file = new File(路径);
绝对路径 “/” 代表在当前所在的盘符下
如果你的项目在D盘下,那 / 就代表D://
相对路径 "./"代表在当前项目下的第一层 和src目录是同级的
web中ServletContext.getRealPath(路径)
该方法用来获取文件的真实(服务器)路径
绝对路径 “/” 是wab的根目录下 即web下 和WEB-INF是同级的
web下资源
ServletContext.getRealPath("/a.txt") ;
WEB-INF下资源
ServletContext.getRealPath("/WEB-INF/b.txt") ;
src下资源
ServletContext.getRealPath("/WEB-INF/classes/c.txt") ;
类加载器 加载资源的路径
this.getClass().getResource(String)
这里的"./"开头的路径是该类所在目录; this.getClass() 说明了一切!!
找到类,就找文件;很显然和类同一目录下
如果是在静态方法里,可以使用 类名.Class.getResource()
this.getClass().getClassLoader().getResource(String)
这里的"./"开头的路径就是src或main下的 或者编译好的classes 的,getClassLoader()说明了一切
找到类,还得找到类的加载器,再找文件;很显然在根目录下
参考资料:
https://www.cnblogs.com/yadongliang/p/7920053.html
http://xixinfei.iteye.com/blog/1256291
一点补充
在web项目中classPath即web/classes (classes目录下和src目录下的结构相同)
用maven构建项目的时候,classpath即src/main/下的resources、java和webapp
上一篇: python相对路径的问题