¿Cómo puedo obtener el valor de la variable del sistema que está presente en
MyComputer -> Properties -> Advanced -> Environment Variables -> System Variables
en Java
Editar
He usado el System.getenv()
método
Está imprimiendo valor si doy
System.out.println(System.getenv("JAVA_HOME"));
y muestra null
valor si intento lo mismo para la variable de sistema creada por mí
System.out.println(System.getenv("DBE"));
Respuestas:
Use el
System.getenv(String)
método, pasando el nombre de la variable a leer.fuente
Para aclarar, las variables del sistema son las mismas que las variables de entorno. Las variables de entorno del usuario se establecen por usuario y son diferentes cada vez que un usuario diferente inicia sesión. Las variables de entorno de todo el sistema son las mismas sin importar en qué usuario inicie sesión.
Para acceder al valor actual de una variable de todo el sistema o una variable de usuario en Java, consulte a continuación:
Para obtener más información sobre las variables de entorno, consulte esta página de wikipedia .
También asegúrese de que la variable de entorno que está intentando leer esté configurada correctamente antes de invocar Java haciendo un:
Debería ver el valor de la variable de entorno. De lo contrario, es posible que deba volver a abrir el shell (DOS) o cerrar sesión y volver a iniciarla.
fuente
getenv
debería ser en minúsculas en lugar degetEnv
correcto?echo %var%
se imprime%var%
. Si lo intentoecho $var
, funciona y muestra el valor de esa variable env. Migetenv
regresa nulo.%var%
utilizado para Windows,$var
para sistemas unix / linux / MacOS.Hay algunos detalles de interés al obtener propiedades del sistema / entorno.
Primero,
System.getenv(String)
se introdujo hace mucho tiempo, luego se desaprobó. La desaprobación (tontamente, IHMO) continuó hasta JSE 1.4 .Se reintrodujo en JSE 5 .
Estos se configuran utilizando el panel de Variables de entorno en Windows. Es posible que los cambios en las variables no se recojan hasta que su VM actual se apague y se cierre la instancia CMD.exe.
A diferencia de las propiedades del entorno, Java también tiene propiedades del sistema Java, accesibles a través de
System.getProperties()
. Estas variables se pueden inicializar cuando la VM se inicia utilizando una serie de argumentos de línea de comando. Por ejemplo, los valores para las propiedades y se establecen en el siguiente comando:-Dname=value
maxInMemory
pagingDirectory
Estas propiedades se pueden modificar en tiempo de ejecución, salvo restricciones de política de seguridad.
fuente
En realidad, la variable se puede establecer o no, por lo tanto, en Java 8 o superior, su valor anulable debe incluirse en un
Optional
objeto, lo que permite características realmente buenas. En el siguiente ejemplo trataremos de obtener la variableENV_VAR1
, si no existe, podemos lanzar alguna excepción personalizada para alertar sobre ella:fuente
Google dice que eche un vistazo a getenv () :
Sin embargo, no estoy seguro de cómo las variables del sistema difieren de las variables de entorno, por lo que si pudiera aclarar, podría ayudar más.
fuente
¿Has intentado reiniciar desde que configuraste la variable de entorno?
Parece que Windows mantiene su variable de entorno en algún tipo de caché, y reiniciar es un método para actualizarlo. No estoy seguro, pero puede haber un método diferente, pero si no va a cambiar el valor de su variable con demasiada frecuencia, esto puede ser lo suficientemente bueno.
fuente
Como se mencionó anteriormente en sombody, reiniciar eclipse funcionó para mí para la variable de entorno definida por el usuario. Después de reiniciar eclipse IDE,
System.getenv()
está recogiendo mi variable de entorno.fuente
¿Estás en un sistema Linux? Si es así, asegúrese de exportar su variable.
Me pongo nulo a menos que use exportar para definir el valor globalmente.
fuente