System.getProperty与System.getenv()
date
Oct 12, 2020
slug
System.getProperty与System.getenv()
status
Published
tags
Java
summary
type
Post
写代码的时候我习惯设置环境变量来区分不同的运行环境,这样一些数据库连接等相关信息不用硬编码进程序,只需要运行的时候设置好环境变量,程序会自动从环境变量中读取。
以前我一直使用的是System.getenv(String variableName)方法获取环境变量,后来因为一台机器上要部署多个应用,而多个应用中有重名的环境变量名,所以我打算在运行jar包的命令行传进去。
但是发现System.getenv("foo")一直是null,如果设置系统的环境变量则能获取得到值,后改成System.getProperty("foo")后能成功获取到值了。
总结:
System.getProperty()一般是获取jvm相关系统属性,无参方法获取全部属性值,有参方法获取特定属性;
System.getenv()一般是获取系统环境变量,无参方法获取全部系统变量,有参方法获取特定环境变量。
参考: