Java几种路径的获取
Posted 赤恩吉烨
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java几种路径的获取相关的知识,希望对你有一定的参考价值。
各位朋友,相信大家都知道,在web项目中的默认路径总是例如这种:
D:\JavaWebG工具软件\新建文件夹\eclipse-jee-kepler-sr1-win32\Work\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\HomeWork6_16\
其实我们往往要写入的真实路径并不是这个,那为什么在上传文件和写入数据的时候,总是会写入到这个路径呢??
这其实是eclipes在作怪,他会默认把当前的工作项目拷贝到例如上面的那个路径里,那么我们想要写入到我的工作目录下面应该怎么做呢?
相信大家也看出来了,相比自己的工作路径,它似乎只是中间多了一节“\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps”,
既然这样,那我们是不是可以吧这个路径看着字符串的形式,然后把多余的地方截取掉呢?
事实证明是可以的,那么下面就写了一个例子;
那么我们可以把它封装成一个方法来专门用来获取路径!
public String getWebPath() {
String path=String path=getServletContext().getRealPath("/"); //这已不是获得默认的路径;
int index=path.indexOf(".metadata");
String webPath=path.substring(1,index-1).replace(‘/‘, ‘\\‘)+getServletContext().getContextPath()+"/WebContent/"; //这一步是把多余的路径不要,然后拼凑成你想要的路径;
return webPath;
}
String path = getServletContext().getRealPath("/");
这将获取web项目的全路径
例如:E:\eclipseM9\workspace\tree\ tree是我web项目的根目录
this.getClass().getClassLoader().getResource("/").getPath();
这将获取到classes目录的全路径
例如 E:\eclipseM9/workspace/tree/WEB-INF/classes/
这个方法也可以不在web环境里确定路径,比较好用
request.getContextPath();
获得web根的上下文环境
如/tree www.2cto.com tree是我的web项目的root context
/*jsp 取得当前目录的路径
path=request.getRealPath("");
当然了,以上的都是java web项目的获取办法;
最好获取的就是JAVA类中的工作路径了;
System.getProperty("user.dir");
就这样就可以获得你的工作路径了,简单吧!
以上是我综合我学习中的一些总结,希望各位给予建议和意见;
以上是关于Java几种路径的获取的主要内容,如果未能解决你的问题,请参考以下文章