System.getProperty(key)和System.getenv(key)的用法和区别
Posted Dream_it_possible!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了System.getProperty(key)和System.getenv(key)的用法和区别相关的知识,希望对你有一定的参考价值。
目录
2. getProperty(key) 能够获取到系统默认的参数
两个方法都是获取系统变量参数的方法,下面比较一下用法和区别。
1. 使用getProperty(key)获取配置参数
通过配置VM options向应用里注入参数, 格式为-Dkey=value。
然后通过System.getProperty("rocketmq.namesrv.addr") 获取到参数即可。
2. getProperty(key) 能够获取到系统默认的参数
getProperty(key)方法 除了能获取到配置参数外,还能够获取到jvm自带的一些系统参数,如获取当前系统的默认用户路径,windows环境下一般都是 c:\\Users\\adminstrator, 用参数user.home即可。
System.getProperty("user.home")
3. 通过getenv(key)方法获取系统参数
可以在 Environment variables里设置键值对,用getenv(key)方法读取到value。
通过System.getenv("NAMESRV_ADDR") 获取到参数即可。
4. 二者优先级对比
public static String getNameServerAddresses() {
return System.getProperty(MixAll.NAMESRV_ADDR_PROPERTY,
System.getenv(MixAll.NAMESRV_ADDR_ENV));
}
最后读取到了vm options里的参数,由结果可知: VM options 的优先级大于Environment variable。
以上是关于System.getProperty(key)和System.getenv(key)的用法和区别的主要内容,如果未能解决你的问题,请参考以下文章
System.getenv() 和 System.getProperty() 之间的区别 [重复]
系统变量之System.getenv()和System.getProperty()
系统变量之System.getenv()和System.getProperty()
System.getProperty("line.separator"); 之间的区别和“\n”?
System.getProperty("line.separator") 和 "\n" 导致列表视图不填充
关于System.getProperty("java.io.tmpdir");的输出,及System.getProperty();参数(转自扑球小猫)