Java 系统属性和环境变量
2022-08-31 05:01:00
JVM 中的系统属性 System.getProperties() 和环境变量 System.getenv() 之间有什么区别?
系统属性是使用语法在 Java 命令行上设置的。它们也可以在运行时使用 System.setProperty(String key, String value) 或通过各种 System.getProperties().load() 方法添加。
要获取特定的系统属性,可以使用 System.getProperty(String key) 或 System.getProperty(String key, String def)。。-Dpropertyname=value
环境变量在操作系统中设置,例如在Linux或Windows等中,并且与属性不同,不能在运行时设置。
要获取特定的环境变量,可以使用 System.getenv(字符串名称)。export HOME=/Users/myusernameSET WINDIR=C:\Windows
我认为两者之间的区别归结为访问。任何进程都可以访问环境变量,而 Java 系统属性只能由它们添加到的进程访问。
同样正如Bohemian所说,env变量是在操作系统中设置的(但是它们“可以通过Java”设置),系统属性作为命令行选项传递或通过setProperty()设置。