JAVA路径的方法:

注明:如果从ANT启动程序,this.getClass().getResource("")取出来的比较怪,直接用JAVA命令行调试就可成功。

得到classpath和当前类的绝对路径的一些方法

获得CLASSPATH之外路径的方法:

URL base = this.getClass().getResource(""); //先获得本类的所在位置,如/home/popeye/testjava/build/classes/net/ String path = new File(base.getFile(), "……/……/……/"+name).getCanonicalPath(); //就可以得到/home/popeye/testjava/name

下面是一些得到classpath和当前类的绝对路径的一些方法。你可能需要使用其中的一些方法来得到你需要的资源的绝对路径。

1.FileTest.class.getResource("")

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

如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/com/test/

2.FileTest.class.getResource("/")

得到的是当前的classpath的绝对URI路径。

如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/

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

得到的也是当前ClassPath的绝对URI路径。

如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/

4.FileTest.class.getClassLoader().getResource("")

得到的也是当前ClassPath的绝对URI路径。

如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/

5.ClassLoader.getSystemResource("")

得到的也是当前ClassPath的绝对URI路径。

如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/

我推荐使用Thread.currentThread().getContextClassLoader().getResource("")来得到当前的classpath的绝对路径的URI表示法。

在Web应用程序中,我们一般通过ServletContext.getRealPath("/")方法得到Web应用程序的根目录的绝对路径。这样,我们只需要提供相对于Web应用程序根目录的路径,就可以构建出定位资源的绝对路径。

注意点:

1.尽量不要使用相对于System.getProperty("user.dir")当前用户目录的相对路径。这随时可能要你的命。

2.尽量使用URI形式的绝对路径资源。它可以很容易的转变为URI,URL,File对象。

3.尽量使用相对classpath的相对路径。不要使用绝对路径。使用上面ClassLoaderUtil类的public static URL getExtendResource(String relativePath)方法已经能够使用相对于classpath的相对路径定位所有位置的资源。

4.绝对不要使用硬编码的绝对路径。因为,我们完全可以使用ClassLoader类的getResource("")方法得到当前classpath的绝对路径。

使用硬编码的绝对路径是完全没有必要的!它一定会让你死的很难看!程序将无法移植!

如果你一定要指定一个绝对路径,那么使用配置文件,也比硬编码要好得多!

当然,我还是推荐你使用程序得到classpath的绝对路径来拼资源的绝对路径.

1、利用System.getProperty()函数获取当前路径:

System.out.println(System.getProperty("user.dir"));//user.dir指定了当前的路径

2、使用File提供的函数获取当前路径:

File directory = new File("");//设定为当前文件夹

try{

System.out.println(directory.getCanonicalPath());//获取标准的路径

System.out.println(directory.getAbsolutePath());//获取绝对路径

}catch(Exceptin e){}

File.getCanonicalPath()和File.getAbsolutePath()大约只是对于new File(".")和new File("..")两种路径有所区别。

# 对于getCanonicalPath()函数,“."就表示当前的文件夹,而”..“则表示当前文件夹的上一级文件夹

# 对于getAbsolutePath()函数,则不管”.”、“..”,返回当前的路径加上你在new File()时设定的路径

# 至于getPath()函数,得到的只是你在new File()时设定的路径

比如当前的路径为 C:\test :

File directory = new File("abc");

directory.getCanonicalPath(); //得到的是C:\test\abc

directory.getAbsolutePath();    //得到的是C:\test\abc

direcotry.getPath();                    //得到的是abc

File directory = new File(".");

directory.getCanonicalPath(); //得到的是C:\test

directory.getAbsolutePath();    //得到的是C:\test\.

direcotry.getPath();                    //得到的是.

File directory = new File("..");

directory.getCanonicalPath(); //得到的是C:\

directory.getAbsolutePath();    //得到的是C:\test\..

direcotry.getPath();                    //得到的是..

另外:System.getProperty()中的字符串参数如下:

System.getProperty()参数大全

java.version Java 运行时环境版本

java.vendor Java 运行时环境供应商

java.vendor.url Java 供应商的 URL

java.home Java 安装目录

java.vm.specification.version Java 虚拟机规范版本

java.vm.specification.vendor Java 虚拟机规范供应商

java.vm.specification.name Java 虚拟机规范名称

java.vm.version Java 虚拟机实现版本

java.vm.vendor Java 虚拟机实现供应商

java.vm.name Java 虚拟机实现名称

java.specification.version Java 运行时环境规范版本

java.specification.vendor Java 运行时环境规范供应商

java.specification.name Java 运行时环境规范名称

java.class.version Java 类格式版本号

java.class.path Java 类路径

java.library.path 加载库时搜索的路径列表

java.io.tmpdir 默认的临时文件路径

java.compiler 要使用的 JIT 编译器的名称

java.ext.dirs 一个或多个扩展目录的路径

os.name 操作系统的名称

os.arch 操作系统的架构

os.version 操作系统的版本

file.separator 文件分隔符(在 UNIX 系统中是“/”)

path.separator 路径分隔符(在 UNIX 系统中是“:”)

line.separator 行分隔符(在 UNIX 系统中是“/n”)

user.name 用户的账户名称

user.home 用户的主目录

user.dir 用户的当前工作目录

在tomcat容器中的变量

catalina.home                               tomcat所在的目录全路径

资料(System.getProperty()参数大全):http://yueguangyuan.javaeye.com/blog/71940

1、利用System.getProperty()函数获取当前路径:

System.out.println(System.getProperty("user.dir"));//user.dir指定了当前的路径

2、使用File提供的函数获取当前路径:

File directory = new File("");//设定为当前文件夹

try{

System.out.println(directory.getCanonicalPath());//获取标准的路径

System.out.println(directory.getAbsolutePath());//获取绝对路径

}catch(Exceptin e){}

File.getCanonicalPath()和File.getAbsolutePath()大约只是对于new File(".")和new File("..")两种路径有所区别。

# 对于getCanonicalPath()函数,“."就表示当前的文件夹,而”..“则表示当前文件夹的上一级文件夹

# 对于getAbsolutePath()函数,则不管”.”、“..”,返回当前的路径加上你在new File()时设定的路径

# 至于getPath()函数,得到的只是你在new File()时设定的路径

比如当前的路径为 C:\test :

File directory = new File("abc");

directory.getCanonicalPath(); //得到的是C:\test\abc

directory.getAbsolutePath();    //得到的是C:\test\abc

direcotry.getPath();                    //得到的是abc

File directory = new File(".");

directory.getCanonicalPath(); //得到的是C:\test

directory.getAbsolutePath();    //得到的是C:\test\.

direcotry.getPath();                    //得到的是.

File directory = new File("..");

directory.getCanonicalPath(); //得到的是C:\

directory.getAbsolutePath();    //得到的是C:\test\..

direcotry.getPath();                    //得到的是..

另外:System.getProperty()中的字符串参数如下:

System.getProperty()参数大全

java.version Java 运行时环境版本

java.vendor Java 运行时环境供应商

java.vendor.url Java 供应商的 URL

java.home Java 安装目录

java.vm.specification.version Java 虚拟机规范版本

java.vm.specification.vendor Java 虚拟机规范供应商

java.vm.specification.name Java 虚拟机规范名称

java.vm.version Java 虚拟机实现版本

java.vm.vendor Java 虚拟机实现供应商

java.vm.name Java 虚拟机实现名称

java.specification.version Java 运行时环境规范版本

java.specification.vendor Java 运行时环境规范供应商

java.specification.name Java 运行时环境规范名称

java.class.version Java 类格式版本号

java.class.path Java 类路径

java.library.path 加载库时搜索的路径列表

java.io.tmpdir 默认的临时文件路径

java.compiler 要使用的 JIT 编译器的名称

java.ext.dirs 一个或多个扩展目录的路径

os.name 操作系统的名称

os.arch 操作系统的架构

os.version 操作系统的版本

file.separator 文件分隔符(在 UNIX 系统中是“/”)

path.separator 路径分隔符(在 UNIX 系统中是“:”)

line.separator 行分隔符(在 UNIX 系统中是“/n”)

user.name 用户的账户名称

user.home 用户的主目录

user.dir 用户的当前工作目录

在tomcat容器中的变量

catalina.home                               tomcat所在的目录全路径

资料(System.getProperty()参数大全):http://yueguangyuan.javaeye.com/blog/71940

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/thunder09/archive/2010/05/25/5621629.aspx

java 当前路径_java获取路径(url) path相关推荐

  1. java当前路径_java获取当前路径的几种方法

    1.利用System.getProperty()函数获取当前路径: System.out.println(System.getProperty("user.dir"));//use ...

  2. java当前路径和相对路径相关的疑惑

    java当前路径和相对路径相关的疑惑_克豪的博客-CSDN博客 java当前路径和相对路径相关的疑惑_克豪的博客-CSDN博客

  3. java severlet 获取当前路径_Java 获取当前路径的方法总结

    Java 获取当前路径的方法总结 1.利用System.getProperty()函数获取当前路径: System.out.println(System.getProperty("user. ...

  4. java读取src xml文件路径_Java获取路径方法相对路径读取xml文件方法

    (1).request.getRealPath("/");//不推荐使用获取工程的根路径 (2).request.getRealPath(request.getRequestURI ...

  5. java 读取project_java project 和 java web project 获取路径问题

    java project中如何获得相对路径(编译后的目录是在/bin目录下)(一般图片 这些目录放在 项目目录下,与src同级) 在static方法中,用 String path = Test.cla ...

  6. java 返回上层路径_Java获取路径

    getClass().getResource() 方法获得相对路径( 此方法在jar包中无效.返回的内容最后包含/) 例如 项目在/D:/workspace/MainStream/Test 在java ...

  7. java 本周一_java 获取本周一的日期

    java 获取本周一的日期 /** * 根据时间,获取周一的日期 * * @param curDate * 字符串形式 * @return */ public static String getMon ...

  8. java月份_java 获取一定时间范围内的所有月份

    需求:获取2018年初到现在为止的所有月份统计数据 获取到所有月份 遍历月份获取数据得到list在前台显示 代码: main方法  使用simpledateFormat需要用try catch 包围 ...

  9. java 证书链_java – 获取证书链

    这并不难 – 假设你以某种方式/带外获得了一个或多个钥匙串中的所有中间证书和根证书. 看一下 http://codeautomate.org/blog/2012/02/certificate-vali ...

最新文章

  1. java正则 括号_java正则表达式获取大括号小括号内容并判断数字和小数亲测可用...
  2. 【打CF,学算法——二星级】Codeforces Round #313 (Div. 2) B. Gerald is into Art(水题)...
  3. vim中使用sed去除网上copy的源代码行号和空格
  4. Intel 平台编程总结----缓存的优化
  5. 特殊方法,类之间的关系,分页
  6. 嵌入式控制系统和计算机系统
  7. python字典进行大写转化_Python字典转换成小写?
  8. 【零基础学Java】—final关键字与四种用法(二十九)
  9. windows11怎么绕过tpm安装,win11在线安装
  10. 熊猫烧香病毒样本分析
  11. Redis设计与实现(导航)
  12. 《数据挖掘:R语言实战》P234中,UCI数据库中白酒品质研究数据集4898个样本下载问题
  13. Java - ip2region - 使用篇
  14. Eclipse的TPTP使用方法
  15. 白领的一天 场景7:薪水与福利
  16. 尚邮——Wopus周六聚会大图分享(2009-12-28 11:50:01)
  17. 路由与交换-华为eNSP-交换机上配置DHCP技术
  18. 【PMP】Head First PMP 学习笔记 第八章 质量管理
  19. rk3368H android7.1 固定竖屏参数修改
  20. 把桌面从C盘改到D盘,结果直接让D盘变成了桌面,改回去发现图标变少了

热门文章

  1. SGA与PGA的区别
  2. ks检验与s-w 检验_「学习」AD, RJ和KS-哪种正态性检验是最好的?
  3. 开源的词法分析器_将意图分析器用于您的开源家庭自动化项目
  4. 《校正病例对照微生物组研究中的批次效应》
  5. JCF 集合框架小结
  6. 来 COSCon'21 北京线下聚会,将开心开源进行到底!
  7. 什么是Facebook像素?作用是什么?
  8. 大家推荐个好用的网络书签吧!
  9. java IO流-java学习笔记
  10. 数字孪生园区创新实验室落地解决方案