Propriétés du système Java et variables d'environnement


Réponses:


148

Je pense que la différence entre les deux se résume à l'accès. Les variables d'environnement système sont accessibles par n'importe quel processus et les propriétés du système Java ne sont accessibles que par le processus auquel elles sont ajoutées.

De même, comme l'a indiqué Bohème, les variables env sont définies dans le système d'exploitation (mais elles «peuvent» être définies via Java) et les propriétés du système sont transmises sous forme d'options de ligne de commande ou définies via setProperty().


5
Enfin, c'est la façon dont les variables sont ajoutées et la portée des variables.
Praveen Sripati

Gardez à l'esprit que d'autres processus peuvent trouver la cmd utilisée pour lancer un processus, d'où les propriétés du système java également.
Christian

359

42
Absolument correct, bohème. Les variables d'environnement sont une «chose OS» et les propriétés sont une «chose Java». En l'occurrence, Java a choisi d'exposer les variables du système d'exploitation en tant que propriétés (tout comme Java expose le répertoire actuel et "d'autres éléments" en tant que propriétés), mais ce sont en fait des choses différentes.
paulsm4

@MarekSebera que voulez-vous dire?
Bohème

8
System.grtProperties()répertorie toutes les propriétés, et celles définies à partir de la ligne de commande seront là, mais il n'y a aucun moyen de les distinguer des autres propriétés ajoutées par le système, si c'est ce que vous demandez.
Bohème

11
Notez que vous pouvez également définir les propriétés système avec la variable d'environnement JAVA_TOOL_OPTIONS.
flacs

6
@KanagaveluSugumar Oui, vous devez redémarrer: les paramètres des variables d'environnement sont lus à partir de l'environnement au démarrage. ie System.getenv(String name)ne lit pas dynamiquement la valeur du système au moment de l'appel.
Bohème
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.