获取路径是编写Java程序和Web应用程序时经常遇到的一件事情,本文将介绍基于Java文件、WEB应用程序的获取路径的方法。
基于Java文件获取路径的方法
Java程序可以通过以下方式获取文件的路径:
public class FilePath {
public static void main(String[]args){
// 获取当前类(class)所在的路径
String classPath = FilePath.class.getResource("").getPath();
System.out.println(classPath);
// 获取当前的classpath的绝对路径的URI表示法
String resource = FilePath.class.getClassLoader().getResource("").getPath();
System.out.println(resource);
// 获取当前JAR包所在的路径
String jarPath = FilePath.class.getProtectionDomain().getCodeSource().getLocation().getFile();
System.out.println(jarPath);
}
}
解释
FilePath.class.getResource("")
– 获取当前FilePath类所在的路径,返回URL类型的值.getPath()
– 调用此方法后,返回这个URL对象的文件路径,去掉file:,把所有的“/”替换成本地操作系统形式的文件路径分隔符。FilePath.class.getClassLoader().getResource("")
– 获取当前classpath的绝对路径的URI表达格式。ProtectionDomain.getCodeSource().getLocation()
– 获取当前Jar包所处的路径,返回URL类型的值
基于WEB应用程序获取路径的方法
在Web应用中,我们需要通过ServletContext获取路径,比如我们可以通过ServletContext获取当前WEB应用程序的根目录。
以下是一个示例:
@WebServlet(name = "HelloServlet", urlPatterns = {"/hello"})
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 获取WEB应用根目录的绝对路径
String rootPath = getServletContext().getRealPath("/");
System.out.println("rootPath = " + rootPath);
// 获取WEB应用资源所在的目录
String imagePath = getServletContext().getRealPath("/images");
System.out.println("imagePath = " + imagePath);
}
}
解释
getServletContext().getRealPath("/")
– 获取WEB应用程序的根目录,返回该目录的真实路径getServletContext().getRealPath("/images")
– 获取WEB应用程序下名为images文件夹的真实路径
通过上面两个方法,我们可以非常方便地获取Java文件和Web应用程序的路径。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于JAVA文件中获取路径及WEB应用程序获取路径的方法 - Python技术站