Pra*_*ati 246 java variables environment properties system
系统属性System.getProperties()和JVM中的环境变量System.getenv()有什么区别?
Boh*_*ian 332
使用-Dpropertyname=value
语法在Java命令行上设置系统属性.它们也可以在运行时使用System.setProperty(String key, String value)
或通过各种
System.getProperties().load()
方法添加.
要获取特定的系统属性,您可以使用System.getProperty(String key)
或System.getProperty(String key, String def)
.
环境变量在OS中设置,例如在Linuxexport HOME=/Users/myusername
或WindowsSET WINDIR=C:\Windows
等中,并且与属性不同,可能不会在运行时设置.
要获取特定的环境变量,您可以使用System.getenv(String name)
.
Jak*_*sey 144
我认为两者之间的区别归结为访问.系统环境变量可由任何进程访问,Java系统属性只能通过添加它们的进程访问.
同样如波西米亚所述,env变量在OS中设置(但它们可以通过Java设置),系统属性作为命令行选项传递或通过设置setProperty()
.