Java-Systemeigenschaften und Umgebungsvariablen

Antworten:

148

Ich denke, der Unterschied zwischen den beiden läuft auf den Zugang hinaus. Auf Systemumgebungsvariablen kann von jedem Prozess zugegriffen werden, und auf Java-Systemeigenschaften kann nur von dem Prozess zugegriffen werden, zu dem sie hinzugefügt wurden.

Wie von Bohemian angegeben, werden env-Variablen im Betriebssystem festgelegt (sie können jedoch über Java festgelegt werden) und Systemeigenschaften werden als Befehlszeilenoptionen übergeben oder über festgelegt setProperty().

Jake Dempsey
quelle
5
Schließlich werden die Variablen hinzugefügt und der Umfang der Variablen.
Praveen Sripati
Beachten Sie, dass andere Prozesse das zum Starten eines Prozesses verwendete cmd finden können, daher auch die Eigenschaften des Java-Systems.
Christian
359
Böhmisch
quelle
42
Absolut richtig, böhmisch. Umgebungsvariablen sind eine "Betriebssystemsache", und Eigenschaften sind eine "Java-Sache". Java hat sich entschieden, Betriebssystemvariablen als Eigenschaften verfügbar zu machen (genau wie Java das aktuelle Verzeichnis und "andere Dinge" als Eigenschaften verfügbar macht), aber es handelt sich tatsächlich um verschiedene Dinge.
Pauls4
@MarekSebera was meinst du damit?
Bohemian
8
System.grtProperties()listet alle Eigenschaften auf, und die über die Befehlszeile festgelegten werden dort sein, aber es gibt keine Möglichkeit, diese von den anderen vom System hinzugefügten Eigenschaften zu unterscheiden, wenn Sie dies wünschen.
Bohemian
11
Beachten Sie, dass Sie Systemeigenschaften auch mit der Umgebungsvariablen festlegen können JAVA_TOOL_OPTIONS.
Flacs
6
@KanagaveluSugumar Ja, Sie müssen neu starten: Die Einstellungen der Umgebungsvariablen werden beim Start aus der Umgebung gelesen. dh System.getenv(String name)liest den Wert zum Zeitpunkt des Aufrufs nicht dynamisch aus dem System.
Böhmisch