摘要:web项目与普通Java项目获取类路径的方式有点不一样,因为web项目获取的是运行容器所在的路径,而普通的Java项目一般是代码所在的路径。

很多时候我们都需要在项目中获得项目当前运行所在的绝对路径,但web项目与普通Java项目获取类路径的方式有点不一样,因为web项目获取的是运行容器所在的路径,而普通的Java项目一般是代码所在的路径。

 request.getSession().getServletContext().getRealPath(
"/"
);

对于Java项目,有两种方法来获取,共同点都是需要获得当前类加载器的路径:

方法一:

   String path = ClassLoader.getSystemResource(
"/"
).getPath();

 此时获得的路径字符串前面会带有一个斜杠,通过下面的方式可以去掉斜杠:

 String path = 
new
File(ClassLoader.getSystemResource(
"/"
).getPath())


.getAbsolutePath();

方法二:

   URL url = Thread.currentThread().getContextClassLoader().


getResource(
"/"
);


File config =
new
File(url.toURI());


String path = config.getAbsolutePath();