在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应用程序中,我们一般通过ServletContext.getRealPath("/")方法得到Web应用程序的根目录的绝对路径。
还有request.getContextPath();  在Weblogic中要用request.getServletContext().getContextPath();但如果打包成war部署到Weblogic服务器,项目内部并没有文件结构的概念,用这种方式是始终得到null,获取不到路径,目前还没有找到具体的解决方案。

最新文章

  1. Windows Task Scheduler Fails With Error Code 2147943785
  2. jQuery工具方法
  3. Delphi 中记录类型 给记录指针赋值。
  4. 安卓序列化漏洞 —— CVE-2015-3525
  5. 【C#】线程之Task
  6. HBASE的安装
  7. Java List&Map简单初始化方法
  8. mui开发app之多图压缩与上传(仿qq空间说说发表)
  9. edgedb 内部pg 数据存储的探索 (四) 源码编译
  10. python之字典及其方法---整理集
  11. bzoj千题计划318:bzoj1396: 识别子串(后缀自动机 + 线段树)
  12. Centos7.5安装Docker
  13. nagios系列(六)之nagios实现对服务器cpu温度的监控
  14. python 元组攻略
  15. day4python学习
  16. java future 并发简单实现
  17. centosmini7安装GNOME
  18. python数据结构之树(二叉树的遍历)
  19. Perl的子程序(二)
  20. Eclipse调试不能进入断点

热门文章

  1. Sublime Text 2 入门
  2. C++(MFC)编程一些注意事项
  3. SharePoint 优化显示WebParts
  4. Mysql几种索引类型的区别及适用情况
  5. bnuoj 25662 A Famous Grid (构图+BFS)
  6. c++ 哪些自定义的数据类型
  7. 【BZOJ】【1324】王者之剑
  8. nginx模块开发(18)—日志分析
  9. C#扩展方法入门
  10. POJ2503Babelfish