Java获取根目录路径有很多种方法,但是根据应用程序所部署的环境和中间件不同,获取的路径可能也不同。下面我提供一种方法,解决这个问题。
String path = InterfaceConfig.class.getResource("").getPath().toString();//获取类所在路径
if (path.contains(".jar")) {
path = path.replace("/", File.separator);//将/换成\,如果是linux环境,还是/
path = path.replace("file:", "");//去掉file
path = path.replace("classes\\", "");//去掉classes\
if (path.startsWith("\\")) {
path = path.substring(1);//去掉第一个\,如:、\D:\TongWeb... ,在linux上没有这种情况
}
path = path.split("WEB-INF")[0]+"WEB-INF"+File.separator+"classes";
} else {
path = InterfaceConfig.class.getResource("/").getPath().toString();//获取根路径
}
File file = new File(path + File.separator + "InterfaceConfig.xml");
这段代码什么意思呢?
1、第一行是获取InterfaceConfig.class这个类所在的路径,这个InterfaceConfig.class可以换成你这段代码所在的类。
2、判断路径中是否包含.jar,就是说这段代码所在的类最终构建的时候是不是打入jar包里,如果在jar包里,就去掉一些内容,如file: ,classes\\,
然后根据WEB-INF切割,并拼出根目录。
3、如果没有打入jar包,那更简单了,直接通过获取根路径方法就解决了。
4、最后读取classes路径下的InterfaceConfig.xml配置文件。