关于System.getenv()与System.getProperty()的区别,链接1 、链接2 讲的很清楚。
链接3 讲了spring boot 启动时指定系统属性。
下面通过阅读上面的文章,我的总结:
- System.getenv()
使用场景: 获取的是操作系统变量,如PATH、HOME等在操作系统层面配置的参数,dockerfile文件中声明的ENV变量、sh脚本中export设置的属性都属于系统变量,都可以通过System.getenv()获取
查看全部的系统变量: 执行System.getenv(),不传参数,可以获取全部的系统属性 - System.getProperty()
使用场景: 获取的是java平台生效的属性,如Spring Boot应用的配置属性application.properties、JVM参数等
兜底参数: System.getProperty(“属性名”,“兜底值”)当属性值不存在的时候,用兜底值代替