引言
在web项目开发过程中,可能会经常遇到要获取项目根路径的情况,那接下来我就总结一下,java中获取项目根路径的7种方法,主要是通过thisClass和System,线程和request等方法。
(1):this.getClass().getResource(“/“);
(2):file.getCanonicalPath();
(3):this.getClass().getClassLoader();
(4):System.getProperty(“user.dir”);
(5):System.getProperty(“java.class.path”);
(6):Thread.currentThread().getContentClassLoader();
(7):request.getSession().getServletContext();
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| import java.io.File; import java.io.IOException; import java.net.URL;
public class Test {
public static void main(String[] args) { Test demo = new Test(); try { demo.showURL(); } catch (IOException e) { e.printStackTrace(); } }
public void showURL() throws IOException {
File f = new File(this.getClass().getResource("/").getPath()); System.out.println("path1: " + f);
File f2 = new File(this.getClass().getResource("").getPath()); System.out.println("path1: " + f2);
File directory = new File(""); String courseFile = directory.getCanonicalPath(); System.out.println("path2: " + courseFile);
URL xmlpath = this.getClass().getClassLoader().getResource(""); System.out.println("path3: " + xmlpath);
System.out.println("path4:" + System.getProperty("user.dir"));
System.out.println("path5: " + System.getProperty("java.class.path").split(";")[0]); System.out.println("path6: " + Thread.currentThread().getContextClassLoader().getResource("").getPath());
String path7 = request.getSession().getServletContext().getRealPath("/")); System.out.println("path7: " + path7); } }
|