Java如何获取当前的jar包路径

最近在写一个可运行的jar包,需要从导出后跟jar同级目录读取配置文件(如xml文件)信息,但是不知道怎么定位程序运行时的相对路径,这里做下简单的记录:
第一种方式:使用类路径
String ProjectPath = XXX(this).class.getProtectionDomain().getCodeSource().getLocation().getPath(); 

如果直接执行.class文件那么会得到当前class的绝对路径;如果封装在jar包里面执行jar包那么会得到当前jar包的绝对路径。
如果路径包含Unicode字符,还需要将路径转码:
path = java.net.URLDecoder.decode(path, "UTF-8"); 

第二种方式:使用JVM
String path = System.getProperty("java.class.path");

猜你喜欢

转载自xu-nuo.iteye.com/blog/2386469