java获取当前路径

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("user.dir")和this.getClass().getResource("")获取的路径是一样的,
但是对于类在包内的情况就不同了:System.getProperty("user.dir")取得的是包所在的路径,而this.getClass().getResource("")才真正获得的是当前类所在的路径。

例如: 在ddhxd.test.Test1类中:
    System.getProperty("user.dir")                  返回D:\Java\testcode
    Test1.class.getResource("")                     返回file:/D:/Java/testcode/ddhxd/test/
    **Test1.class 即 Class.forName("ddhxd.test.Test1")

 


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

System.getProperty()参数大全

java.version
Java 运行时环境版本 Java Runtime Environment version
java.vendor Java 运行时环境供应商 Java Runtime Environment vendor
java.vendor.url Java 供应商的 URL Java vendor URL 
java.home Java 安装目录 Java installation directory 
java.vm.specification.version Java 虚拟机规范版本 Java Virtual Machine specification version
java.vm.specification.vendor Java 虚拟机规范供应商 Java Virtual Machine specification vendor
java.vm.specification.name Java 虚拟机规范名称 Java Virtual Machine specification name
java.vm.version Java 虚拟机实现版本 Java Virtual Machine implementation version
java.vm.vendor Java 虚拟机实现供应商 Java Virtual Machine implementation vendor
java.vm.name Java 虚拟机实现名称 Java Virtual Machine implementation name
java.specification.version Java 运行时环境规范版本 Java Runtime Environment specification version
java.specification.vendor Java 运行时环境规范供应商 Java Runtime Environment specification vendor
java.specification.name Java 运行时环境规范名称 Java Runtime Environment specification name
java.class.version Java 类格式版本号 Java class format version number
java.class.path Java 类路径 Java class path
java.library.path 加载库时搜索的路径列表 List of paths to search when loading libraries
java.io.tmpdir 默认的临时文件路径 Default temp file path
java.compiler 要使用的 JIT 编译器的名称 Name of JIT compiler to use
java.ext.dirs 一个或多个扩展目录的路径 Path of extension directory or directories 
os.name 操作系统的名称 Operating system name 
os.arch 操作系统的架构 Operating system architecture
os.version 操作系统的版本 Operating system version
file.separator 文件分隔符(在 UNIX 系统中是“/”) File separator ("/" on UNIX)
path.separator 路径分隔符(在 UNIX 系统中是“:”) Path separator (":" on UNIX) 
line.separator 行分隔符(在 UNIX 系统中是“/n”) Line separator ("/n" on UNIX) 
user.name 用户的账户名称 User's account name
user.home 用户的主目录 User's home directory
user.dir 用户的当前工作目录 User's current working directory
在tomcat容器中的变量
catalina.home
tomcat所在的目录全路径  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值