Java : 获取jar包所在的路径
jar中没有目录的概念,所以不能通过类加载器来获取jar在磁盘中的位置,
下面是获取jar包所在路径的一种方式,我使用了URL没有使用二进制名称,避免了平台分隔符的问题
/** * 获取项目加载类的根路径 * @return */ public static String getPath(){ String path = ""; try{ //jar 中没有目录的概念 URL location = Application.class.getProtectionDomain().getCodeSource().getLocation();//获得当前的URL File file = new File(location.getPath());//构建指向当前URL的文件描述符 if(file.isDirectory()){//如果是目录,指向的是包所在路径,而不是文件所在路径 path = file.getAbsolutePath();//直接返回绝对路径 }else{//如果是文件,这个文件指定的是jar所在的路径(注意如果是作为依赖包,这个路径是jvm启动加载的jar文件名) path = file.getParent();//返回jar所在的父路径 } logger.info("project path={}",path); }catch (Exception e){ e.printStackTrace(); logger.error("{}",e); } return path; }

浙公网安备 33010602011771号