getRealPath()是个被标记为遗弃的一个获取当前路径的方法,被标记为遗弃的原因又是什么?
getRealPath("/")在不同的服务器上所获得的实现是不一样的,对一个打包的应用来说,是没有RealPath的概念的,调用getRealPath只会简单地返回null。一个文件被打包入了.war文件,就不存在目录结构了(虽然包中仍然存在目录结构,但这不等同于文件系统中的目录结构)。所以,对war包中的资源是无法得到RealPath的。这样也就无从通过文件IO进行读取了,
因此被标为遗弃。
获取绝对路径的方法:
this.getClass().getClassLoader().getResource("/").getPath(); 此处为classes目录, 往上一层可以用getResource("/../"),
直接指向文件名getResource("/../xxx.xxx")
继承了 HttpServlet 类,也可用此方法:
getServletContext().getResource("/"), 要注意,getServletContext()可能会返回null
本文探讨了Java中废弃的getRealPath()方法的原因及其替代方案。该方法在不同服务器上的表现不一致,且对打包应用无效。文章还介绍了获取绝对路径的新方法。
7671

被折叠的 条评论
为什么被折叠?



