Jaka jest różnica między właściwościami systemowymi System.getProperties () a zmiennymi środowiskowymi System.getenv () w JVM?
Jaka jest różnica między właściwościami systemowymi System.getProperties () a zmiennymi środowiskowymi System.getenv () w JVM?
Odpowiedzi:
Myślę, że różnica między tymi dwoma sprowadza się do dostępu. Systemowe zmienne środowiskowe są dostępne dla dowolnego procesu, a właściwości systemowe Java są dostępne tylko dla procesu, do którego zostały dodane.
Również, jak stwierdził Bohemian, zmienne env są ustawiane w systemie operacyjnym (jednak można je ustawić za pomocą Java), a właściwości systemowe są przekazywane jako opcje wiersza poleceń lub przez setProperty().
Właściwości systemowe są ustawiane w wierszu komend Java za pomocą-Dpropertyname=valueskładni. Można je również dodać w czasie wykonywania przy użyciuSystem.setProperty(String key, String value)lub za pomocą różnych
System.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 Linuxexport HOME=/Users/myusernamelub WindowsSET WINDIR=C:\Windowsitp. 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).
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.