Jaka jest różnica między właściwościami systemowymi System.getProperties () a zmiennymi środowiskowymi System.getenv () w JVM?
java
variables
properties
system
environment
Praveen Sripati
źródło
źródło
Właściwości systemowe są ustawiane w wierszu komend Java za pomocą
-Dpropertyname=value
składni. Można je również dodać w czasie wykonywania przy użyciuSystem.setProperty(String key, String value)
lub za pomocą różnychSystem.getProperties().load()
metod.Aby uzyskać określoną właściwość systemu , możesz użyć
System.getProperty(String key)
lubSystem.getProperty(String key, String def)
.Zmienne środowiskowe są ustawiane w systemie operacyjnym, np. W systemie Linux
export HOME=/Users/myusername
lub WindowsSET WINDIR=C:\Windows
itp. I, w przeciwieństwie do właściwości, mogą nie być ustawiane w czasie wykonywania.Aby uzyskać określoną zmienną środowiskową , możesz użyć
System.getenv(String name)
.źródło
System.grtProperties()
wyświetla wszystkie właściwości, a te ustawione z wiersza poleceń będą tam dostępne, ale nie ma sposobu, aby odróżnić je od innych właściwości dodanych przez system, jeśli o to pytasz.JAVA_TOOL_OPTIONS
.System.getenv(String name)
nie odczytuje dynamicznie wartości z systemu w czasie połączenia.