Java-Systemeigenschaften und Umgebungsvariablen

Was ist der Unterschied zwischen Systemeigenschaften System.getProperties () und Umgebungsvariablen System.getenv () in einer JVM?

   

Ich denke, der Unterschied zwischen den beiden läuft darauf hinaus. Auf Systemumgebungsvariablen kann von jedem process zugegriffen werden, und Java-Systemeigenschaften sind nur für den process verfügbar, dem sie hinzugefügt werden.

Wie auch böhmisch angegeben, werden env-Variablen im Betriebssystem gesetzt (sie können jedoch über Java gesetzt werden) und Systemeigenschaften werden als Befehlszeilenoptionen übergeben oder über setProperty() .

  • Systemeigenschaften werden in der Java-Befehlszeile mit der Syntax -Dpropertyname=value . Sie können auch zur Laufzeit mit System.setProperty(String key, String value) oder über die verschiedenen System.getProperties().load() -Methoden System.getProperties().load() werden.
    Um eine bestimmte Systemeigenschaft zu erhalten , können Sie System.getProperty(String key) oder System.getProperty(String key, String def) .

  • Umgebungsvariablen werden im OS gesetzt, zB im Linux- export HOME=/Users/myusername oder unter Windows SET WINDIR=C:\Windows etc, und im Gegensatz zu den Eigenschaften, kann zur Laufzeit nicht gesetzt werden.
    Um eine bestimmte Umgebungsvariable zu erhalten, können Sie System.getenv(String name) .