¿Qué son las variables de entorno?
Cada lenguaje de programación de computadoras contiene variables y constantes que asignan ubicaciones de memoria únicas, que contienen información para ser utilizada por los programas. Los valores constantes no se pueden cambiar, pero el valor de la variable se puede cambiar. Las variables de entorno son el par clave/valor cuyo valor se establece fuera del programa y su referencia siempre está disponible para el programa en cualquier momento. Tanto la clave como el valor son cadenas. Las convenciones para establecer y usar variables de entorno siempre difieren entre los sistemas operativos y los intérpretes de línea de comandos. Siempre están disponibles globalmente para todas las aplicaciones que se ejecutan en el sistema.Ejemplo
PATH = "C:\\WINDOWS\system32;"
Aquí, Path es la variable de entorno establecida fuera del programa pero disponible para cada programa que se ejecuta en Windows.
Caso de uso
Como sabemos, cada cambio en el programa debe ejecutarse o volver a implementarse en el servidor, lo que puede producir efectos secundarios no deseados en la producción. Entonces, el objetivo principal de introducir variables de entorno es restringir esta ejecución e implementación una y otra vez.¿Cómo obtener variables de entorno en Java?
Veamos cómo obtener variables de entorno en Java. Java nos proporciona 2 formas de obtener variables de entorno en el programa Java.-
Sistema.getenv()
-
Sistema.getProperty()
Sistema.getenv()
El método System.getenv() se utiliza para obtener todas las variables de entorno, pero si se proporciona un nombre de clave específico como parámetro, obtendrá su valor. java.lang.System.getenv() siempre devuelve el mapa de cadenas de todas las variables de entorno disponibles.Declaración
public static String getenv(String name)
Aquí, el nombre es el parámetro utilizado para especificar la clave contra la que necesitamos el valor.
Devolver
Devolverá el valor de la clave o nulo si el parámetro proporcionado no está asociado con ninguna clave. Si no se pasa el parámetro, devolverá todos los pares clave/valor disponibles.Ejemplo
import java.util.Map;
public class SystemGetEnvDemo {
public static void main(String[] args) {
// getting value for environment variable "PATH"
System.out.print("System.getenv(PATH) = ");
System.out.println(System.getenv("PATH"));
// getting value for environment variable "TEMP" resulting in null
System.out.print("System.getenv(TEMP) = ");
System.out.println(System.getenv("TEMP"));
//getting all environment variables using System.getenv()
Map<String, String> env = System.getenv();
for (String envName : env.keySet()) {
System.out.format("%s=%s%n",
envName,
env.get(envName));
}
}
}
Producción
System.getenv(RUTA) = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin System.getenv(TEMP) = null RUTA=/usr/local /sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin PROGRAMIZ_COMPILER_SERVICE_HOST=10.0.10.151 KUBERNETES_PORT=tcp://10.0.0.1:443 PROGRAMIZ_COMPILER_PORT=tcp://10.0.10.151 :80 TERM=xterm PROGRAMIZ_COMPILER_WEB_UI_SEVICE_PORT_80_TCP_PROTO=tcp KUBERNETES_SERVICE_HOST=10.0.0.1 PS1= PROGRAMIZ_COMPILER_WEB_UI_SEVICE_PORT_80_TCP_PORT=80 PROGRAMIZ_COMPILER_WEB_UI_SEVICE_PORT_80_TCP_ADDR=10.0 .14.233 PROGRAMIZ_COMPILER_PORT_80_TCP=tcp://10.0.10.151:80 PROGRAMIZ_COMPILER_PORT_80_TCP_PROTO=tcp PWD=/app KUBERNETES_PORT_443_TCP=tcp://10.0.0.1 :443 PROGRAMIZ_COMPILER_PORT_80_TCP_ADDR=10.0.10.151 PROGRAMIZ_COMPILER_WEB_UI_SEVICE_PORT=tcp://10.0.14.233:80 KUBERNETES_PORT_443_TCP_ADDR=10.0.0.1 PROGRAMIZ_COMPILER_WEB_UI_SEVICE_SERVICE_HOST=10.0 .14.233 PROGRAMIZ_COMPILER_PORT_80_TCP_PORT=80 KUBERNETES_PORT_443_TCP_PROTO=tcp KUBERNETES_SERVICE_PORT=443 PROGRAMIZ_COMPILER_SERVICE_PORT=80 PROGRAMIZ_COMPILER_WEB_UI_SEVICE_PORT_80_TCP=tcp://10.0.14.233:80 PROGRAMIZ_COMPI LER_WEB_UI_SEVICE_SERVICE_PORT=80 HOSTNAME=programiz-compiler-deployment-58bfd77477-dtlq8 KUBERNETES_PORT_443_TCP_PORT=443 KUBERNETES_SERVICE_PORT_HTTPS=443 HOME=/home/compiler
Puede obtener una salida diferente dependiendo de su sistema operativo.
Sistema.getProperty()
También podemos usar java.lang.System.getProperty() en Java para recuperar el valor de la clave especificada pasada como parámetro a este método. Este método se utiliza para recuperar las propiedades del sistema, es decir, información sobre el sistema local y las configuraciones. Si la variable de entorno está presente como una propiedad del sistema en Java, entonces es mejor usar System.getProperty() para obtener valor de forma independiente de la plataforma. El valor de las propiedades se puede cambiar en tiempo de ejecución, pero no en el caso de las variables de entorno.Declaración
public String getProperty(String name)
Aquí, el nombre es el parámetro utilizado para especificar la clave contra la que necesitamos el valor.
Devolver
Devolverá el valor de la clave o nulo.Ejemplo
import java.lang.*;
import java.util.Properties;
public class SystemGetPropertyDemo {
public static void main(String[] args)
{
// getting username system property
// using System.getProperty in Java
System.out.println("user.name: " + System.getProperty("user.name"));
// getting property with key home resulting in null
// calling system.getproperty()
System.out.println("home: " + System.getProperty("home"));
// getting name of Operating System
System.out.println("os.name: " + System.getProperty("os.name"));
}
}
Producción
nombre de usuario: inicio
del compilador: nulo
os.name: Linux
GO TO FULL VERSION