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/myusername
SET WINDIR=C:\Windows
我认为两者之间的区别归结为访问。任何进程都可以访问环境变量,而 Java 系统属性只能由它们添加到的进程访问。
同样正如Bohemian所说,env变量是在操作系统中设置的(但是它们“可以通过Java”设置),系统属性作为命令行选项传递或通过setProperty()
设置。