Какая разница между системными свойствами System.getProperties() и переменными окружения System.getenv() в JVM?
Свойства системы Java и переменные среды
Ответ 1
Я думаю, что разница между ними сводится к доступу. Переменные системной среды доступны для любого процесса, а свойства системы Java доступны только для процесса, к которому они добавлены.
Также, как указано в Bohemian, переменные env задаются в ОС (однако они могут быть установлены через Java), а свойства системы передаются как параметры командной строки или устанавливаются через setProperty().
Ответ 2
-
Свойства системы установлены в командной строке 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или на WindowsSET WINDIR=C:\Windowsи т.д. и, в отличие от свойств, не могут быть установлены во время выполнения.
Чтобы получить определенную переменную среды, вы можете использоватьSystem.getenv(String name).