绝对路径的几种方法
下面是一些得到classpath和当前类的绝对路径的一些方法。你可能需要使用其中的一些
方法来得到你需要的资源的绝对路径。
1、FilePath.class.getResource("")
得到的是当前类FileTest.class文件的URI目录。不包括自己!
2、FilePath.class.getResource("/")
得到的是当前的classpath的绝对URI路径。
3、Thread.currentThread().getContextClassLoader().getResource("")
得到的也是当前ClassPath的绝对URI路径。
4、FilePath.class.getClassLoader().getResource("")
得到的也是当前ClassPath的绝对URI路径。
5、ClassLoader.getSystemResource("")
得到的也是当前ClassPath的绝对URI路径。
推荐使用Thread.currentThread().getContextClassLoader().getResource("")。
代码如下:
/**
*得到当前的classPath的绝对路径的URI几种表示法
*/
public static void main(String[] args) {
//1.得到的是当前类FileTest.class文件的URI目录。不包括自己!
System.out.println(FilePath.class.getResource(""));
//2.得到的是当前的classPath的绝对URI路径。
System.out.println(FilePath.class.getResource("/")); // Class文件所在路径
//3.得到的也是当前ClassPath的绝对URI路径。
System.out.println(Thread.currentThread().getContextClassLoader().getResource(""));
//4.得到的也是当前ClassPath的绝对URI路径。
System.out.println(FilePath.class.getClassLoader().getResource(""));
//5.得到的也是当前ClassPath的绝对URI路径。
System.out.println(ClassLoader.getSystemResource(""));
//人为得到
System.out.println(new File("/").getAbsolutePath());
System.out.println(System.getProperty("user.dir"));
}
执行结果如下:
file:/D:/WorkSpaces/myEclipse/szproj/WebRoot/WEB-INF/classes/suzhou/java/day11/file/
file:/D:/WorkSpaces/myEclipse/szproj/WebRoot/WEB-INF/classes/
file:/D:/WorkSpaces/myEclipse/szproj/WebRoot/WEB-INF/classes/
file:/D:/WorkSpaces/myEclipse/szproj/WebRoot/WEB-INF/classes/
file:/D:/WorkSpaces/myEclipse/szproj/WebRoot/WEB-INF/classes/
D:/
D:/WorkSpaces/myEclipse/szproj