В чем разница между системными свойствами System.getProperties () и переменными среды System.getenv () в JVM?
java
variables
properties
system
environment
Правин Срипати
источник
источник
Системные свойства устанавливаются в командной строке Java с использованием
-Dpropertyname=value
синтаксиса. Они также могут быть добавлены во время выполнения, используяSystem.setProperty(String key, String value)
различныеSystem.getProperties().load()
методы.Чтобы получить конкретное системное свойство, вы можете использовать
System.getProperty(String key)
илиSystem.getProperty(String key, String def)
.Переменные среды устанавливаются в ОС, например, в Linux
export HOME=/Users/myusername
или в Windows иSET WINDIR=C:\Windows
т. Д., И, в отличие от свойств, могут не устанавливаться во время выполнения.Чтобы получить конкретную переменную среды вы можете использовать
System.getenv(String name)
.источник
System.grtProperties()
перечисляет все свойства, и те, которые установлены из командной строки, будут там, но нет никакого способа отличить те от других свойств, добавленных системой, если это то, что вы спрашиваете.JAVA_TOOL_OPTIONS
.System.getenv(String name)
не динамически считывает значение из системы во время вызова.