Propiedades del sistema Java y variables de entorno

Respuestas:

148

Creo que la diferencia entre los dos se reduce al acceso. Las variables de entorno del sistema son accesibles por cualquier proceso y las propiedades del sistema Java solo son accesibles por el proceso al que se agregan.

Además, como dijo Bohemian, las variables env se configuran en el sistema operativo (sin embargo, 'se pueden' configurar a través de Java) y las propiedades del sistema se pasan como opciones de línea de comandos o se configuran mediante setProperty().

Jake Dempsey
fuente
55
Finalmente, es cómo se agregan las variables y el alcance de las variables.
Praveen Sripati
Tenga en cuenta que otros procesos pueden encontrar el cmd utilizado para iniciar un proceso, por lo tanto, las propiedades del sistema Java también.
Christian
359
Bohemio
fuente
42
Absolutamente correcto, bohemio. Las variables de entorno son una "cosa del sistema operativo", y las propiedades son una "cosa de Java". Como sucede, Java eligió exponer las variables del sistema operativo como propiedades (al igual que Java expone el directorio actual y "otras cosas" como propiedades), pero en realidad son cosas diferentes.
paulsm4
@MarekSebera, ¿qué quieres decir?
Bohemio
8
System.grtProperties()enumera todas las propiedades, y las establecidas desde la línea de comandos estarán allí, pero no hay forma de distinguirlas de las otras propiedades agregadas por el sistema, si eso es lo que está preguntando.
Bohemio
11
Tenga en cuenta que también puede establecer las propiedades del sistema con la variable de entorno JAVA_TOOL_OPTIONS.
Flacs
66
@KanagaveluSugumar Sí, debe reiniciar: la configuración de las variables de entorno se lee desde el entorno al inicio. es decir System.getenv(String name), no lee dinámicamente el valor del sistema en el momento de la llamada.
Bohemio