java8获取路径_JAVA中获取项目文件路径

在java中获得文件的路径在我们做上传文件操作时是不可避免的。

web 上运行

1:

this.getClass().getClassLoader().getResource("/").getPath();

this.getClass().getClassLoader().getResource("").getPath(); 得到的是 ClassPath的绝对URI路径。

如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.war/WEB-INF/classes/

System.getProperty("user.dir");

this.getClass().getClassLoader().getResource(".").getPath(); 得到的是 项目的绝对路径。

如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.war

2:

this.getClass().getResource("/").getPath();

this.getClass().getResource("").getPath();

得到的是当前类文件的URI目录。不包括自己!

如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.war/WEB-INF/classes/com/jebel/helper/

this.getClass().getResource(".").getPath(); X 不 能运行

3:

Thread.currentThread().getContextClassLoader().getResource("/").getPath()

Thread.currentThread().getContextClassLoader().getResource("").getPath() 得到的是 ClassPath的绝对URI路径。

如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.war/WEB-INF/classes/

Thread.currentThread().getContextClassLoader().getResource(".").getPath() 得到的是 项目的绝对路径。

如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.war

在本地运行中

1:

this.getClass().getClassLoader().getResource("").getPath();

this.getClass().getClassLoader().getResource(".").getPath(); 得到的是 ClassPath的绝对URI路径。

如:/D:/myProjects/hp/WebRoot/WEB-INF/classes

this.getClass().getClassLoader().getResource(".").getPath(); X 不 能运行

2:

this.getClass().getResource("").getPath();

this.getClass().getResource(".").getPath();

得到的是当前类文件的URI目录。不包括自己!

如:/D:/myProjects/hp/WebRoot/WEB-INF/classes/com/jebel/helper/

/D:/myProjects/hp/WebRoot/WEB-INF/classes/ 得到的是 ClassPath的绝对URI路径。

如:/D:/myProjects/hp/WebRoot/WEB-INF/classes

3:

Thread.currentThread().getContextClassLoader().getResource(".").getPath()

Thread.currentThread().getContextClassLoader().getResource("").getPath()

得到的是 ClassPath的绝对URI路径。。

如:/D:/myProjects/hp/WebRoot/WEB-INF/classes

Thread.currentThread().getContextClassLoader().getResource("/").getPath() X 不 能运行

最后

在Web应用程序中,我们一般通过 request.getSession().getServletContext().getRealPath("/")

方法得到Web应用程序的根目录的绝对路径即(··/WebRoot/)

还有request.getContextPath(); 可以获取项目的名字

//返回项目的名字

String path =

request.getContextPath();

//返回全名(url)

String basePath =

request.getScheme() + "://"

+

request.getServerName() + ":" + request.getServerPort()

+ path +

"/";

在Weblogic中要用request.getServletContext().getContextPath();但如果打包成war部署到Weblogic服务器,项目内部并没有文件结构的概念,用这种方式是始终得到null,获取不到路径,目前还没有找到具体的解决方案。

request.getServletContext().getRealPath("/") 获取项目所在服务器的全路径,如:D:\Program

Files\apache-tomcat-7.0.25\webapps\TestSytem\

request.getServletPath() 获取客户端请求的路径名,如:/object/delObject

request.getServerName() 获取服务器地址,如:localhost

request.getServerPort() 获取服务器端口,如8080

request.getContextPath() 获取项目名称,如:TestSytem

request.getLocalAddr() 获取本地地址,如:127.0.0.1

request.getLocalName() 获取本地IP映射名,如:localhost

request.getLocalPort() 获取本地端口,如:8090

request.getRealPath("/") 获取项目所在服务器的全路径,如:D:\Program

Files\apache-tomcat-7.0.25\webapps\TestSytem\

request.getRemoteAddr() 获取远程主机地址,如:127.0.0.1

request.getRemoteHost() 获取远程主机,如:127.0.0.1

request.getRemotePort() 获取远程客户端端口,如:3623

request.getRequestedSessionId() 获取会话session的ID,如:823A6BACAC64FB114235CBFE85A46CAA

request.getRequestURI() 获取包含项目名称的请求路径,如:/TestSytem/object/delObject

request.getRequestURL().toString() 获取请求的全路径,如:http://localhost:8090/TestSytem/object/delObject

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值