关于稳定的获取src路径的心得与分享

引言:众所周知,在java中可以使用    class.getResource("") 方法来获取src的绝对路径。但是在很多情况下,由于class的位置,是否是静态方法调用,项目包含关系,单元测试关系,以及是否是web环境运行等等(甚至很多情况下还要获取class的 getClassLoader().getResource("") ,获取到的,往往都不是我们期望得到的结果,路径不对,严重的会直接导致程序运行崩溃。而且往往不出错还不知道哪里出错了。为此,我自己写了一个工具类,根据某一个类的package来获取相应的src路径,这样,在各种环境下获取src路径,要相对更加稳定些(可能在有些情况下还会有所出入,但是可以在此抛砖引玉嘛)

代码如下:

/**
     * 获取系统的src绝对路径
     * @return
     */
    public static String getSrcPath(){
        Class clazz = Customer.class;//可以用项目中任意一个存在的类,推荐使用实体类
        String srcPath = clazz.getResource("").getPath();//获取当前类的所在的绝对路径
        String pn = clazz.getPackage().getName();//获取类的包名

<span style="white-space:pre">	</span>/* 根据包名与绝对路径进行src路径的判断 */

        if(File.separator.equals("/")){
            pn = "/" + pn.replace(".","/");
        }else {
            if(srcPath.contains(".")){
                pn = "\\" + pn.replace(".","\\");
            }else if(srcPath.contains("/")){
                pn = "/" + pn.replace(".","/");
            }
        }
        String str = srcPath.substring(srcPath.lastIndexOf(pn));
        String str1 = srcPath.substring(0,srcPath.lastIndexOf(pn));
        return str1 + str.replace(pn,"");
    }


ok,结束。



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值