Quelle est la différence entre les propriétés système System.getProperties () et les variables d'environnement System.getenv () dans une machine virtuelle Java?
Je pense que la différence entre les deux se résume à l'accès. Les variables d'environnement système sont accessibles à tout processus et les propriétés système Java ne sont accessibles que par le processus auquel elles ont été ajoutées.
En outre, comme l'a dit Bohemian, les variables env sont définies dans le système d'exploitation (toutefois, elles peuvent être définies via Java) et les propriétés système sont transmises en tant qu'options de ligne de commande ou définies via setProperty()
.
Les propriétés système sont définies sur la ligne de commande Java à l'aide de la commande -Dpropertyname=value
syntaxe. Ils peuvent également être ajoutés au moment de l'exécution à l'aide de System.setProperty(String key, String value)
ou via les différentes méthodes System.getProperties().load()
.
Pour obtenir une propriété système spécifique , vous pouvez utiliser System.getProperty(String key)
ou System.getProperty(String key, String def)
.
Les variables d'environnement sont définies dans le système d'exploitation, par exemple. sous Linux export HOME=/Users/myusername
ou sous Windows SET WINDIR=C:\Windows
etc., et, contrairement aux propriétés, peut ne pas être défini à l'exécution.
Pour obtenir une variable d’environnement spécifique , vous pouvez utiliser System.getenv(String name)
.