System.getProperty(key)和System.getenv(key)的用法和区别

目录

1. 使用getProperty(key)获取配置参数

2. getProperty(key) 能够获取到系统默认的参数

3. 通过getenv(key)方法获取系统参数

4. 二者优先级对比


两个方法都是获取系统变量参数的方法,下面比较一下用法和区别。

1. 使用getProperty(key)获取配置参数

      通过配置VM options向应用里注入参数, 格式为-Dkey=value。

System.getProperty(key)和System.getenv(key)的用法和区别_第1张图片

然后通过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.getProperty(key)和System.getenv(key)的用法和区别_第2张图片

 通过System.getenv("NAMESRV_ADDR") 获取到参数即可。

4. 二者优先级对比

    public static String getNameServerAddresses() {
        return System.getProperty(MixAll.NAMESRV_ADDR_PROPERTY, 
         System.getenv(MixAll.NAMESRV_ADDR_ENV));
    }

System.getProperty(key)和System.getenv(key)的用法和区别_第3张图片

    最后读取到了vm options里的参数,由结果可知:  VM options 的优先级大于Environment variable。

你可能感兴趣的:(java笔记,java获取系统参数,java获取环境变量)