CodeGym /Blog Java /Random-ES /Obtener variables de entorno en Java
Autor
Vasyl Malik
Senior Java Developer at CodeGym

Obtener variables de entorno en Java

Publicado en el grupo Random-ES

¿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.
  1. Sistema.getenv()

  2. Sistema.getProperty()

Ahora veamos ambos en detalle uno por uno.

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

Conclusión

Esperamos que ahora comprenda qué son y cómo obtener variables de entorno en Java, su propósito y cómo usar métodos para obtenerlas. Siéntase libre de practicar y volver cuando necesite más ayuda. ¡Feliz aprendizaje!
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION