Java系统属性和环境variables
JVM中系统属性System.getProperties()和环境variablesSystem.getenv()之间有什么区别?
我认为两者之间的区别归结为访问。 任何进程都可以访问系统环境variables,Java系统属性只能通过添加到的进程来访问。
同样如Bohemian所言,envvariables是在OS中设置的(但是可以通过Java设置),系统属性作为命令行选项传递,或者通过setProperty()
设置。
-
使用
-Dpropertyname=value
语法在Java命令行上设置系统属性 。 它们也可以在运行时使用System.setProperty(String key, String value)
或通过各种System.getProperties().load()
方法添加。
要获取特定的系统属性,您可以使用System.getProperty(String key)
或System.getProperty(String key, String def)
。 -
环境variables是在操作系统中设置的,例如,在Linux
export HOME=/Users/myusername
或WindowsSET WINDIR=C:\Windows
等环境variables中设置,而不像属性,在运行时不能设置。
要获取特定的环境variables ,可以使用System.getenv(String name)
。