java 获取绝对路径与getRealPath

    xiaoxiao2021-12-14  20

    getRealPath()是个被标记为遗弃的一个获取当前路径的方法,被标记为遗弃的原因又是什么? 

    getRealPath("/")在不同的服务器上所获得的实现是不一样的,对一个打包的应用来说,是没有RealPath的概念的,调用getRealPath只会简单地返回null。一个文件被打包入了.war文件,就不存在目录结构了(虽然包中仍然存在目录结构,但这不等同于文件系统中的目录结构)。所以,对war包中的资源是无法得到RealPath的。这样也就无从通过文件IO进行读取了, 因此被标为遗弃。

    获取绝对路径的方法:

    this.getClass().getClassLoader().getResource("/").getPath(); 此处为classes目录, 往上一层可以用getResource("/../"),

    直接指向文件名getResource("/../xxx.xxx")

    继承了 HttpServlet 类,也可用此方法:

    getServletContext().getResource("/"), 要注意,getServletContext()可能会返回null

    转载请注明原文地址: https://ju.6miu.com/read-962899.html

    最新回复(0)