java代码中如何获取当前项目路径以及classpath
程序员文章站
2022-06-11 20:18:17
...
背景
通常在自己编写代码解析指定的配置文件时,为了定位文件的路径会用到使用java代码获取工程路径和classpath的情况。下面直接上一段代码,看看如何实现。
代码实现
package com.test;
import org.junit.Test;
public class ResourceTester {
/**
* 功能说明:测试工程路径、classpath、类的完整路径
* 修改说明:
* @author zheng
* @date 2020年4月26日 下午2:42:07
*/
@Test
public void testPath() {
try {
String projectPath = System.getProperty("user.dir"); //获取当前eclipse工程路径
String classPath = this.getClass().getResource("/").toString(); //获取当前classPath
// String classPath = this.getClass().getClassLoader().getResource(""); //获取当前classPath等同上一行代码
String classFullPath = this.getClass().getResource("").toString(); //获取当前类基于classPath的完整路径
System.out.println(projectPath);
System.out.println(classPath);
System.out.println(classFullPath);
} catch(Exception ex) {
ex.printStackTrace();
}
}
}
运行结果
运行结果如下图:
从图中可以看出classpath对应的是test-classes目录,因为我的代码是单元测试代码,源代码所处的位置是src/test/java下因此对应的classpath是test-classes,如何源代码所处的位置是src/main/java,则获取的classpath就是classes目录了~
注意
System.getProperty(“user.dir”);是获取的当前工程路径,如果是在你的类中是处理源代码可以用这个路径,如果是解析配置文件,比如.properties文件,一定要用classpath的相对路径。