Proprietà del sistema Java e variabili di ambiente


Risposte:


148

Penso che la differenza tra i due si riduce all'accesso. Le variabili di ambiente di sistema sono accessibili da qualsiasi processo e le proprietà di sistema Java sono accessibili solo dal processo a cui sono state aggiunte.

Inoltre, come affermato da Bohemian, le variabili env sono impostate nel sistema operativo (tuttavia possono essere impostate tramite Java) e le proprietà di sistema vengono passate come opzioni della riga di comando o impostate tramite setProperty().


5
Infine, è come vengono aggiunte le variabili e l'ambito delle variabili.
Praveen Sripati,

Tieni presente che altri processi possono trovare il cmd utilizzato per avviare un processo, quindi anche le proprietà del sistema java.
Christian,

359

42
Assolutamente corretto, boemo. Le variabili di ambiente sono una "cosa del sistema operativo" e le proprietà sono una "cosa di Java". Come succede, Java ha scelto di esporre le variabili del sistema operativo come proprietà (proprio come Java espone la directory corrente e "altre cose" come proprietà), ma in realtà sono cose diverse.
paulsm4,

@MarekSebera cosa intendi?
Boemia

8
System.grtProperties()elenca tutte le proprietà e quelle impostate dalla riga di comando saranno lì, ma non c'è modo di distinguerle dalle altre proprietà aggiunte dal sistema, se è quello che stai chiedendo.
Boemia

11
Nota che puoi anche impostare le proprietà del sistema con la variabile d'ambiente JAVA_TOOL_OPTIONS.
flacs

6
@KanagaveluSugumar Sì, è necessario riavviare: le impostazioni delle variabili di ambiente vengono lette dall'ambiente all'avvio. cioè System.getenv(String name)non legge dinamicamente il valore dal sistema al momento della chiamata.
Boemia
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.