我想获取在我的服务器上运行的 WAR 文件的大小。我试过谷歌搜索如何去做,但我没有任何运气。如果我尝试 File.length(),它会返回 0(不是很有帮助)。
我注意到当我执行 request.getServletContext().getRealPath("/")
时,它返回:
C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\nameofmyapp\
有什么方法可以使用此路径来查找部署的 WAR 文件的大小?谢谢。
WAR 文件只是一个美化的 zip 文件,用于将 webapp 部署到 Tomcat。部署时,Tomcat 将 WAR 文件解压缩到同名目录中(没有 .war
扩展名)。
在您的应用程序中,request.getServletContext().getRealPath("/")
表示解压后的 web 应用程序的根目录路径,而不是 WAR 文件。 (这可能就是您的 File.length
调用返回 0 的原因——the javadoc 表示目录的长度未定义。)要获取 WAR 文件的路径和大小,去掉尾部的斜杠并添加.war
扩展名:
File webappPath = new File(request.getServletContext().getRealPath("/"));
File warFile = new File(webappPath.getParent(), webappPath.getName() + ".war");
int warSize = warFile.length();
Tôi là một lập trình viên xuất sắc, rất giỏi!