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.