您的位置:首页 > 其它

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

2015-01-20 15:50 169 查看
引言:众所周知,在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,结束。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: