http://blog.csdn.net/eilent/article/details/6952864

一 相对路径的获得
    说明:相对路径(即不写明时候到底相对谁)均可通过以下方式获得(不论是一般的java项目还是web项目)
         String relativelyPath=System.getProperty("user.dir");
         上述相对路径中,java项目中的文件是相对于项目的根目录
         web项目中的文件路径视不同的web服务器不同而不同(tomcat是相对于 tomcat安装目录\bin)

二 类加载目录的获得(即当运行时某一类时获得其装载目录)
      1.1)通用的方法一(不论是一般的java项目还是web项目,先定位到能看到包路径的第一级目录)
       
        InputStream is=TestAction.class.getClassLoader().getResourceAsStream("test.txt");
                  (test.txt文件的路径为 项目名\src\test.txt;类TestAction所在包的第一级目录位于src目录下)
       
        上式中将TestAction,test.txt替换成对应成相应的类名和文件名字即可

1.2)通用方法二 (此方法和1.1中的方法类似,不同的是此方法必须以'/'开头)
             InputStream is=Test1.class.getResourceAsStream("/test.txt");
                      (test.txt文件的路径为 项目名\src\test.txt,类Test1所在包的第一级目录位于src目录下)

三 web项目根目录的获得(发布之后)
    1 从servlet出发

可建立一个servlet在其的init方法中写入如下语句
      ServletContext s1=this.getServletContext();
     String temp=s1.getRealPath("/"); (关键)
     结果形如:D:\工具\Tomcat-6.0\webapps\002_ext\ (002_ext为项目名字)

如果是调用了s1.getRealPath("")则输出D:\工具\Tomcat-6.0\webapps\002_ext(少了一个"\")

2 从httpServletRequest出发

String cp11111=request.getSession().getServletContext().getRealPath("/");

结果形如:D:\工具\Tomcat-6.0\webapps\002_ext\

四 classpath的获取(在Eclipse中为获得src或者classes目录的路径)

方法一   Thread.currentThread().getContextClassLoader().getResource("").getPath()

eg: String t=Thread.currentThread().getContextClassLoader().getResource("").getPath();
                      System.out.println("t---"+t);

输出:t---/E:/order/002_ext/WebRoot/WEB-INF/classes/

方法二      JdomParse.class.getClassLoader().getResource("").getPath()   (JdomParse为src某一个包中的类,下同)

eg:String p1=JdomParse.class.getClassLoader().getResource("").getPath();
                     System.out.println("JdomParse.class.getClassLoader().getResource--"+p1);

输出: JdomParse.class.getClassLoader().getResource--/E:/order/002_ext/WebRoot/WEB-INF/classes/

另外,如果想把文件放在某一包中,则可以 通过以下方式获得到文件(先定位到该包的最后一级目录)

eg String p2=JdomParse.class.getResource("").getPath();
         System.out.println("JdomParse.class.getResource---"+p2);

输出: JdomParse.class.getResource---/E:/order/002_ext/WebRoot/WEB-INF/classes/jdom/ (JdomParse为src目录下jdom包中的类)

四   属性文件的读取:

方法 一

InputStream in = lnew BufferedInputStream( new FileInputStream(name));          Properties p = new Properties();   p.load(in);

注意路径的问题,做执行之后就可以调用p.getProperty("name")得到对应属性的值

方法二

Locale locale = Locale.getDefault();
              ResourceBundle localResource = ResourceBundle.getBundle("test/propertiesTest", locale);
            String value = localResource.getString("test");
           System.out.println("ResourceBundle: " + value);

工程src目录下propertiesTest.properties(名字后缀必须为properties)文件内容如下:

test=hello word

===

http://topic.csdn.net/u/20090910/13/69d4501a-7b1e-41fa-869e-9e80c6981a8f.html

System.getProperty("user.dir")返回的究竟是什么路径

同样,如果运行的时候,切换到其他目录了,那么就是相应的目录,例如:
C:\Documents and Settings\sundl>D:
D:\>cd workspaces\Html
D:\workspaces\Html>java Test

这时,user.dir就成了D:\workspaces\Html

====

java:

kbuilder.add(ResourceFactory.newFileResource("rules/Limits.drl"), ResourceType.DRL);

script:

cd ${NELLYTRS_HOME}

NELLYTRS_CMD="${JAVA_HOME}/bin/java ${NELLYTRS_ARGS} ${NELLYTRS_PWDARGS} -cp ${CLASSPATH} com.citi.apollo.batch.EODCalculationsProcessor"

the relative path is ${NELLYTRS_HOME}/rules/Limits.drl;

java 中的路径问题总结(绝对路径与相对路径) .相关推荐

  1. Java中动态获取项目根目录和tomcat的绝对路径

    序言 在开发过程中经常会用到读写文件,其中就必然涉及路径问题.使用固定的绝对路径当然很方便,但会导致程序的可移植性差,比如在代码中写死了要在E盘建一个文件,而移植后的环境中木有E盘,那就只能改代码:又 ...

  2. Java 中几种获取文件路径的方式

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | 公众号「码农小胖哥」 1. 前言 Java 开 ...

  3. Java中File的getPath(),getCanonicalPath()和getAbsolutePath()之间的区别

    File API在Java中非常重要,因为它使文件系统可以访问Java程序. 尽管Java的文件API丰富,但是使用它们时仍需要了解许多细节. 关于文件路径的常见查询程序员之一是getPath() , ...

  4. Java中的文件路径

    通常情况下,在Java项目中,我们使用的路径都是在拿到类加载路径后,根据相对位置,使用 FilePathTest.class.getResourceAsStream(relativePath):拿到文 ...

  5. Java中关于路径和使用exe4j打包成ext可执行程序的一些小总结

    需求是这样的,假设你的Java程序启动的时候要读一份配置文件,或者一个dll链接库,或者一个jar包,假设是dll好了,那么你的dll到底应该放在哪比较合适? 1.代码中使用绝对地址,这个是最好理解的 ...

  6. Java中“/”,“.”所代表的文件路径

    转载自  Java中"/","."所代表的文件路径 我们在开发的过程中,经常会去读.写文件.在读写文件的时候,就不得不写文件的路径,使用相对路径的方式有两种:& ...

  7. java 根据类名示例化类_如何使用示例从Java中的类路径加载资源

    java 根据类名示例化类 Java中的类路径不仅用于加载.class文件,而且还可以用于加载资源,例如属性文件,图像,图标,缩略图或任何二进制内容. Java提供了API来将这些资源读取为Input ...

  8. 如何使用示例从Java中的类路径加载资源

    Java中的类路径不仅用于加载.class文件,而且还可以用于加载资源,例如属性文件,图像,图标,缩略图或任何二进制内容. Java提供了API来将这些资源读取为InputStream或URL. 假设 ...

  9. java两个文件夹比较路径_比较Java中两个文件的路径

    java两个文件夹比较路径 Given the paths of the two files and we have two compare the paths of the files in Jav ...

  10. file相对路径java_浅谈java 中文件的读取File、以及相对路径的问题

    一.对于java项目中文件的读取 1.使用system 或是 系统的properties对象 ①直接是使用 string relativelypath=system.getproperty(" ...

最新文章

  1. 【Compiling Swift source files】编译很慢;
  2. monkeyrunner Can't open specified script file
  3. PHP+AJAX 投票器功能
  4. Qt工作笔记-Qt文档阅读笔记-qualifiedName()的官方解析及XML使用名称空间
  5. 【汇总】numpy函数合集
  6. 阿里云:linux 一键安装web环境
  7. 图书馆网计算机编目管理系统,浅谈图书编目计算机管理系统
  8. 05笔记 离散数学——函数——基于离散数学(第3版)_章炯民,陶增乐
  9. 流畅的python不适合初学者_学习《流畅的python》第一天
  10. Spotfire 表达式之逻辑函数
  11. 技术日记2021/2/12 “牛气飞天”恶作剧
  12. Sql中的offset 用法
  13. 目标检测算法——YOLOv5/YOLOv7改进之结合CBAM
  14. Windows 11 新功能 Microsoft Teams
  15. 基于Java的网上作业批改系统
  16. golang开发环境之Sublime Text 2+GoSublime+gocode+MarGo
  17. 基于改进粒子群算法的WSN节点部署优化
  18. [译]Unity3D Shader教程(二)HLSL
  19. Linux学习整理-网络防火墙firewalld
  20. linux下 软件安装与卸载(3)

热门文章

  1. iOS之深入解析缓存方法cache_t底层原理
  2. LeetCode 1049. 最后一块石头的重量 II
  3. Django设计理念
  4. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言—— 1054:三角形判断
  5. 【STM32】STM32F4系统架构
  6. python 类属性排序_Python实现多属性排序的方法
  7. php nsdata,在iPhone中加密nsdata并在php中解密
  8. html+css+javascript 网页设计 从入门到精通_绵阳美工设计学习
  9. javaWeb项目 IDEA中导入eclipes项目的方法。maven多模块项目(父子模块)与普通的web项目导入
  10. 运维请注意:”非常危险“的Linux命令大全