在项目开发中会碰到各种各样的获取项目路径的一些问题:

1:java项目:

以获取  类路径下的mess.properties 为例来说明;

文件在项目中的位置:

src/bz/beppe/demo/resource/mess.properties

1) 通过新建File文件获取其文件所在的路径:

File f=new File("bin/resource/mess.properties");
InputStream in=new FileInputStream(f);

这里获取到的路径地址是:

D:\DMCworkspace\JavaSE\bin\resource\mess.properties

bin/  下的地址表示获取项目编译后在bin目录下面的路径

2)通过 "." 的方式获取项目的当前所在的路径:

File f3=new File(".");
System.out.println(f3.getCanonicalPath());

这里获取到的路径是:

D:\DMCworkspace\JavaSE   即项目所在的路径

3)通过类加载器的方式获取:查找指定资源的url   这里指定资源需要以‘/’开头

URL resource = this.getClass().getResource("/resource/mess.properties");
System.out.println(resource.getFile());

这里获取到的路径是:/D:/DMCworkspace/JavaSE/bin/resource/mess.properties

这里的路径不是以盘符开始的,/D:/DMCworkspace/JavaSE   指定的是java project所在位置,和相应的盘符没有关系;

2:javaweb项目中的获取当前应用的路径:

根目录所对应的绝对路径:request.getServletPath();
文件的绝对路径 :request.getSession().getServletContext().getRealPath(request.getRequestURI())
当前web应用的绝对路径 :servletConfig.getServletContext().getRealPath("/");

3:有一种很特殊的情况,就是获取jar中的文件的路径:

当一个项目你用 new File("xxx")的方式获取文件的路径是没问题的,而当你将该项目打成jar包后放入其他项目中则会报错:FileNotFound 的错误

这是因为这种方式获取到路劲是与盘符和项目所在的目录紧密相关的,在jar包是一个文件没有其中没有java 项目的目录概念,所以获取到的是错误的路劲;

这时候如果要获取jar中的路径则可以通过类加载器的方式来获取其中的路径从而加载文件;

这里以读取jar包中的mess.properties文件为例;

InputStream is = this.getClass().getResourceAsStream("/mess.properties");

java 路径的问题的更多相关文章

  1. linux上java路径设置

    linux上java路径设置 标签: javalinuxpath 2012-04-30 22:14 1843人阅读 评论(0) 收藏 举报 版权声明:本文为博主原创文章,未经博主允许不得转载. 往/e ...

  2. java路径中的空格问题(转)

    java路径中的空格问题 1. URLTest.class.getResource("/").getPath(); URLTest.class.getResource(" ...

  3. Java路径问题最终解决方案—可定位所有资源的相对路径寻址

    1.在Java项目中,应该通过绝对路径访问文件,以下为访问的常用方法: 第一种方法:类名.class.getResource("/").getPath()+文件名 第二种方法:Th ...

  4. Java路径问题终于解决方式—可定位全部资源的相对路径寻址

    1.在Java项目中,应该通过绝对路径訪问文件.下面为訪问的经常用法: 第一种方法:类名.class.getResource("/").getPath()+文件名称 另外一种方法: ...

  5. java 路径问题

    java路径存在两种写法"/"和"\\" String path="D:\\1.txt"; String path1="D:/1. ...

  6. ubuntu18.04因java路径原因启动jenkins失败

    我的云服务器ubuntu18.04上本来装了jenkins,今天安装完tomcat后,将原有的openjdk卸载了,安装了jdk8u192, 此时浏览器访问8080端口显示的就是tomcat安装成功的 ...

  7. java路径问题

    使用了java这么久一直对java获取路径存在困惑,将一些常用的获取路径方式记录如下: val property = System.getProperty("user.dir")) ...

  8. Java 路径

    http://swiftlet.net/archives/713 Java中不存在标准的相对路径,各种相对路径取资源的方式都是基于某种规则转化为绝对路径.所以在Java中文件路径问题无非归结为一点:找 ...

  9. java路径问题总结

    平时写程序的时候,很多时候提示文件找不到,而抛出了异常,现在整理如下[一 相对路径的获得] 说明:相对路径(即不写明时候到底相对谁)均可通过以下方式获得(不论是一般的java项目还是web项目) St ...

  10. Java路径操作具体解释

    1.基本概念的理解 绝对路径:绝对路径就是你的主页上的文件或文件夹在硬盘上真正的路径.(URL和物理路径)比如: C:\xyz\test.txt 代表了test.txt文件的绝对路径.http://w ...

随机推荐

  1. jQuery 常用效果

    hide和show 同样有 fadeInhe fadeOut 的功能 $(document).ready(function(){ $("#hide").click(function ...

  2. Servlet中(Session、cookies、servletcontext)的基本用法

    /req: 用于获得客户端(浏览器)的信息 //res: 用于向客户端(浏览器)返回信息 1.session的设置:            //得到和req相关联的session,如果没有就创建ses ...

  3. DevOps:软件架构师行动指南(文摘)

    第一部分 背景 第1章 DevOps是什么 第二部分 部署流水线 第三部分 横切关注点 第四部分 案例研究 第五部分 走向未来

  4. 引用限定符(c++11)

    1.概念 1)下面这种情况将对一个右值调用成员函数.对右值赋值 string s1 = "abc", s2 = "def"; auto n = (s1 + s2 ...

  5. vmware虚拟机centOs安装教程

    1安装vmware 虚拟机软件 1.解压vmware安装 汉化vmware虚拟机 复制注册码,并填写进vmware 2安装linux(centos)虚拟机 1.  点击文件----->新建虚拟机 ...

  6. .net 打开Excel文档并转为DataTable

    /// <summary> /// 打开Excel文档并转为DataTable /// </summary> /// <returns></returns&g ...

  7. WordPaster-UEditor1.x整合教程

    版权所有 2009-2017 荆门泽优软件有限公司 保留所有权利 官方网站:http://www.ncmem.com/ 产品首页:http://www.ncmem.com/webplug/wordpa ...

  8. KindEditor4.x整合教程-Xproer.WordPaster

    1.1. 集成到KindEditor4.x 主要步骤如下: 1.上传插件文件夹 2.上传WordPaster文件夹   3.在引用页面为KindEditor增加插件按钮 <html xmlns= ...

  9. 11-border(边框)

    边框 border:边框的意思,描述盒子的边框 边框有三个要素: 粗细 线性样式 颜色 border: solid 如果颜色不写,默认是黑色.如果粗细不写,不显示边框.如果只写线性样式,默认的有上下左 ...

  10. 一份不太简短的LaTeX模板

    编译环境: Ubuntu16.04 texllive2016 sublime text3 + latextools 该模板使用与自己写文档,记笔记,记录代码,写作业等等. %!TEX program ...