我将Tomcat解压缩到一个地方,而我的webapps目录可能在其他地方。那么如何获取我的Web应用程序的绝对路径? 我的文件处理程序位于Web应用程序内部,并且我想查找我的Web应用程序或应用程序目录的绝对路径(从C:/或/ home / use / ../../ webapp / mywebapplication这样开始)。问题是我无法控制我的应用程序将在谁/哪里部署?
我将Tomcat解压缩到一个地方,而我的webapps目录可能在其他地方。那么如何获取我的Web应用程序的绝对路径? 我的文件处理程序位于Web应用程序内部,并且我想查找我的Web应用程序或应用程序目录的绝对路径(从C:/或/ home / use / ../../ webapp / mywebapplication这样开始)。问题是我无法控制我的应用程序将在谁/哪里部署?
看到getServletContext().getRealPath("") - 如果内容来自.war文件,则此方法无法正常工作。
在某些情况下,我们可以使用另一种方式获取真实路径。以下是获取指向属性文件C:/Program Files/Tomcat 6/webapps/myapp/WEB-INF/classes/somefile.properties的路径的示例:
// URL returned "/C:/Program%20Files/Tomcat%206.0/webapps/myapp/WEB-INF/classes/"
URL r = this.getClass().getResource("/");
// path decoded "/C:/Program Files/Tomcat 6.0/webapps/myapp/WEB-INF/classes/"
String decoded = URLDecoder.decode(r.getFile(), "UTF-8");
if (decoded.startsWith("/")) {
// path "C:/Program Files/Tomcat 6.0/webapps/myapp/WEB-INF/classes/"
decoded = decoded.replaceFirst("/", "");
}
File f = new File(decoded, "somefile.properties");