Java-System.getProperties()和System.getenv()使用说明

背景

最近在看Zookeeper的源码,在初始化ContainerManager时使用Integer.getInteger(String,int)获取相关属性,而不是读取文件中的配置.

containerManager = new ContainerManager(zkServer.getZKDatabase(), zkServer.firstProcessor,
                    Integer.getInteger("znode.container.checkIntervalMs", (int) TimeUnit.MINUTES.toMillis(1)),
                    Integer.getInteger("znode.container.maxPerMinute", 10000)
            );

而在Integer.getInterger(String,int)中,调用了System.getProperty(String),因此便要解决一个问题:如果配置属性才能让System.getProperty(String)获取到?此外,Systm.getenv()System.getProperty()有何区别呢?

总结

由于上述两个问题在网上都有资料,现总结如下:

如果配置属性才能让System.getProperty(String)获取到?

使用java -D 配置系统属性.使用格式是:java -Dkey=value,如果value中有空格,则需要用双引号将该值括起来,如:-Dname="kazaf f"

Systm.getenv()System.getProperties()有何区别呢?

System.getenv()是获取系统环境变量,System.getProperties()是获取当前系统相关属性信息。
System.getenv():返回当前系统环境的字符串Map,其是不可变的,环境变量是系统相关的键值对,从父进程传递到子进程.如:JAVA_HOME,PATH等
System.getProperties():获取系统相关属性,比如:Java版本、操作系统信息、用户名等,这些跟JVM和操作系统相关的属性.如:java.version,os.name,user.dir,file.separator等

参考

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值