java获取当前jar包所在目录

原本获取工程目录使用方法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包所在的目录;

你可能感兴趣的:(java)