[转]Java 获取当前路径&System.getProperty()参数大全

本文详细介绍了如何使用Java的System.getProperty()函数及File类的各种方法来获取当前目录的路径。包括了getCanonicalPath(), getAbsolutePath() 和 getPath() 函数的区别,并通过实例展示了不同情况下的路径获取方式。

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 Runtime Environment version
# java.vendor                                Java Runtime Environment vendor
# java.vendor.url                           Java vendor URL
# java.home                                Java installation directory
# java.vm.specification.version   Java Virtual Machine specification version
# java.vm.specification.vendor    Java Virtual Machine specification vendor
# java.vm.specification.name      Java Virtual Machine specification name
# java.vm.version                        Java Virtual Machine implementation version
# java.vm.vendor                        Java Virtual Machine implementation vendor
# java.vm.name                        Java Virtual Machine implementation name
# java.specification.version        Java Runtime Environment specification version
# java.specification.vendor         Java Runtime Environment specification vendor
# java.specification.name           Java Runtime Environment specification name
# java.class.version                    Java class format version number
# java.class.path                      Java class path
# java.library.path                 List of paths to search when loading libraries
# java.io.tmpdir                       Default temp file path
# java.compiler                       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                         File separator ("/" on UNIX)
# path.separator                  Path separator (":" on UNIX)
# line.separator                       Line separator ("/n" on UNIX)
# user.name                        User's account name
# user.home                              User's home directory

Java应用中,可以通过`System.getProperty()`方法获取命令行中通过`-D`设置的系统属性。该方法允许通过指定属性名称来获取对应的值,例如`System.getProperty("log.path")`可用于获取`-Dlog.path`指定的日志文件存储路径。此方法还支持提供默认值,例如`System.getProperty("log.path", "/default/path")`会在未设置该属性时返回默认路径[^2]。 ### 示例代码 以下是一个示例代码片段,展示如何通过`System.getProperty()`获取`-Dlog.path`参数的值: ```java public class DParameterFetcher { public static void main(String[] args) { String logPath = System.getProperty("log.path"); if (logPath != null) { System.out.println("Logging path: " + logPath); } else { System.out.println("Logging path is not set."); } } } ``` 此代码通过调用`System.getProperty("log.path")`获取日志路径属性的值,并在控制台输出结果。如果未设置该属性,则输出提示信息说明该属性未被设置。 ### 注意事项 某些属性的值可能因运行环境的不同而有所变化。例如,在不同的容器或服务器中,`System.getProperty("java.io.tmpdir")`可能会返回不同的临时文件目录[^4]。因此,在实际应用中,需要确保相关属性在目标环境中正确配置,并在必要时提供合理的默认值以保证程序的健壮性。 ### 获取其他系统属性 除了通过`-D`设置的自定义属性外,`System.getProperty()`还可以用于获取Java运行时的其他系统属性,如`java.vm.specification.vendor`(Java虚拟机规范提供商)[^5]。这些属性提供了有关JVM和运行环境的详细信息,有助于调试和配置应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值