原本获取工程目录使用方法System.getProperty("user.dir"); 但是打完包放在linux机器上跑的时候发现无法正确获取到该jar包所在目录,导致无法运行; 网上查阅后修改为如下方法:
public String
getPath()
{
String path
= this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath();
if(System
.getProperty("os.name").contains("dows"))
{
path
= path
.substring(1,path
.length());
}
if(path
.contains("jar"))
{
path
= path
.substring(0,path
.lastIndexOf("."));
return path
.substring(0,path
.lastIndexOf("/"));
}
return path
.replace("target/classes/", "");
}
这样打成jar包后也可以正常获取到jar包所在的目录;