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

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. HDU 6185(打表代码

    /** @xigua */ #include <cstdio> #include <cmath> #include <iostream> #include < ...

  2. hdu 2588(简单的欧拉

    题意:给你一个n,m问你1-n里面(x)有多少对gcd(x, n)>=m. 思路:我们可以设n=a*b, x=a*c,此时我们可以知道b,c是互质的,那么就可以用欧拉来求解 /* gyt Liv ...

  3. 2018.11.03 NOIP模拟 地球发动机(线性dp)

    传送门 考试5分钟写完. 如果没这题今天多半爆零了(汗 直接二分出合法的转移范围. 然后用后面的状态更新前面的就可以了. 代码

  4. vue 开发系列(三) vue 组件开发

    概要 vue 的一个特点是进行组件开发,组件的优势是我们可以封装自己的控件,实现重用,比如我们在平台中封装了自己的附件控件,输入控件等. 组件的开发 在vue 中一个组件,就是一个独立的.vue 文件 ...

  5. this指针和const成员函数

    1.this指针 1)this指针是成员函数的隐式参数,成员函数通过this指针来访问调用它自己的那个对象,成员函数对各成员的访问均通过this进行 2)当某个对象调用它的成员函数时,编译器会把这个对 ...

  6. 程序员面试50题—sizeof的用法(6)

    以下为Windows下的32 位C++程序,请计算sizeof 的值void Func ( char str[100] ){sizeof( str ) = ?}void *p = malloc( 10 ...

  7. 20155205 《Java程序设计》0510课上实践博客

    20155205 <Java程序设计>0510课上实践博客 一.教材代码检查-p98 未提交成功原因: 一开始在iterm中运行,但是结果出错,没有时间提交了.这个提交其实很简单,没有提交 ...

  8. GPS 编程笔记

    1.在GPS系统内,经纬度的显示方式一般都可以根据自己的爱好选择,一般有"hddd.ddddd"(度.度),"hddd*mm.mmm"(度.分. 分),&quo ...

  9. C#-委派和事件

    委派代表一个方法.当不知道后面的方法名称时,可用委派先声明,待使用方法时,再在委派实例化时写入方法名称. 先声明, public delegate int delegateClassName (参数列 ...

  10. MVC 图片上传 带进度条(转)

    MVC 图片上传小试笔记 form.js 这个插件已经是很有名的,结合MVC的html辅助方法异步上传就很简单了.jQuery Form Plugin :http://www.malsup.com/j ...