您的位置:首页 > 编程语言 > Java开发

不用java方法getRealPath()的原因

2018-03-19 11:43 197 查看
目前,getRealPath()是一个已被标记为遗弃的获取当前路径的方法,被标记为遗弃的原因又是什么? getRealPath("/")在不同的服务器上所获得的实现是不一样的,对一个打包的应用来说,是没有RealPath的概念的,调用getRealPath只会简单地返回null。一个文件被打包入了.war文件,就不存在目录结构了(虽然包中仍然存在目录结构,但这不等同于文件系统中的目录结构)。所以,对war包中的资源是无法得到RealPath的。这样也就无从通过文件IO进行读取了, 因此被标为遗弃。
获取绝对路径的方法:this.getClass().getClassLoader().getResource("/").getPath(); 此处为classes目录, 往上一层可以用getResource("/../"),直接指向文件名getResource("/../xxx.xxx")
继承了 HttpServlet 类,也可用此方法:getServletContext().getResource("/"), 要注意,getServletContext()可能会返回null
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: