29.获取类路径的常见方式
约 390 字大约 1 分钟
实战29:获取类路径的常见方式
1. 资源路径查询
在Java环境中,如何获取当前类的路径,如何获取项目根路径,可以说是比较常见的需求场景了,下面简单的记录一下
@Test
public void showURL() throws IOException {
// 第一种:获取类加载的根路径
File f = new File(this.getClass().getResource("/").getPath());
System.out.println(f);
// 获取当前类的所在工程路径; 如果不加“/” 获取当前类的加载目录
File f2 = new File(this.getClass().getResource("").getPath());
System.out.println(f2);
// 第二种:获取项目路径
File directory = new File("");// 参数为空
String courseFile = directory.getCanonicalPath();
System.out.println(courseFile);
// 第三种:根据系统资源获取
URL xmlpath = this.getClass().getClassLoader().getResource("");
System.out.println(xmlpath);
// 第四种:系统变量
System.out.println(System.getProperty("user.dir"));
// 第五种:获取所有的类路径 包括jar包的路径
System.out.println(System.getProperty("java.class.path"));
}
输出如下:
/Users/user/Project/hui/testApp/pair/target/test-classes
/Users/user/Project/hui/testApp/pair/target/test-classes/net/finbtc/coin/test
/Users/user/Project/hui/testApp/pair
file:/Users/user/Project/hui/testApp/pair/target/test-classes/
/Users/user/Project/hui/testApp/pair
/Applications/IntelliJ IDEA.app/Contents/lib/idea_rt.jar:... (太长省略)
2. 小结
new File(this.getClass().getResource("/").getPath())
- 获取类加载的根路径
new File(this.getClass().getResource("").getPath())
- 获取当前类的所在工程路径; 如果不加“/” 获取当前类的加载目录
new File("").getCanonicalPath()
- 获取项目路径
this.getClass().getClassLoader().getResource("")
System.getProperty("user.dir")
System.getProperty("java.class.path")
- 获取所有的类路径 包括jar包的路径
Loading...