Właściwości systemu Java i zmienne środowiskowe

Odpowiedzi:

148

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().

Jake Dempsey
źródło
5
Wreszcie, sposób dodawania zmiennych i zakres zmiennych.
Praveen Sripati
Należy pamiętać, że inne procesy mogą znaleźć cmd użyte do uruchomienia procesu, stąd też właściwości systemu java.
Christian
359
Czeski
źródło
42
Absolutnie poprawne, czeskie. Zmienne środowiskowe to „rzecz OS”, a właściwości to „rzecz Java”. Tak się składa, że ​​Java postanowiła ujawnić zmienne systemu operacyjnego jako właściwości (tak jak Java ujawnia bieżący katalog i „inne rzeczy” jako właściwości), ale w rzeczywistości są to różne rzeczy.
paulsm4
@MarekSebera co masz na myśli?
Czeski
8
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.
Czeski
11
Pamiętaj, że możesz także ustawić właściwości systemu za pomocą zmiennej środowiskowej JAVA_TOOL_OPTIONS.
flacs
6
@KanagaveluSugumar Tak, musisz zrestartować: Ustawienia zmiennych środowiskowych są odczytywane ze środowiska podczas uruchamiania. tzn. System.getenv(String name)nie odczytuje dynamicznie wartości z systemu w czasie połączenia.
Bohemian