CodeGym /Blogue Java /Random-PT /Obter variáveis de ambiente em Java
John Squirrels
Nível 41
San Francisco

Obter variáveis de ambiente em Java

Publicado no grupo Random-PT

O que são variáveis ​​de ambiente?

Toda linguagem de programação de computador contém variáveis ​​e constantes que alocam locais de memória exclusivos, contendo informações a serem usadas pelos programas. Os valores constantes não são alteráveis, mas o valor da variável pode ser alterado. As variáveis ​​de ambiente são o par chave/valor cujo valor é definido fora do programa e sua referência está sempre disponível para o programa a qualquer momento. Tanto a chave quanto o valor são strings. As convenções para definir e usar variáveis ​​de ambiente sempre diferem entre sistemas operacionais e interpretadores de linha de comando. Eles estão sempre disponíveis globalmente para todos os aplicativos em execução no sistema.

Exemplo


PATH = "C:\\WINDOWS\system32;"
Aqui, Path é a variável de ambiente definida fora do programa, mas disponível para cada programa em execução no Windows.

Caso de Uso

Como sabemos, todas as alterações no programa precisam ser executadas ou reimplantadas no servidor, o que pode produzir efeitos colaterais indesejados na produção. Portanto, o principal objetivo da introdução de variáveis ​​de ambiente é restringir essa execução e implantação repetidas vezes.

Como obter variáveis ​​de ambiente em Java?

Vamos ver como obter variáveis ​​de ambiente em java. Java nos fornece 2 maneiras de obter variáveis ​​de ambiente no programa Java.
  1. System.getenv()

  2. System.getProperty()

Agora vamos ver os dois em detalhes, um por um.

System.getenv()

O método System.getenv() é usado para buscar todas as variáveis ​​de ambiente, mas se um nome de chave específico for fornecido como parâmetro, ele buscará seu valor. java.lang.System.getenv() sempre retorna o mapa de string de todas as variáveis ​​de ambiente disponíveis.

Declaração


public static String getenv(String name)
Aqui, name é o parâmetro usado para especificar a chave para a qual precisávamos do valor.

Retornar

Ele retornará o valor da chave ou nulo se o parâmetro fornecido não estiver associado a nenhuma chave. Se o parâmetro não for passado, ele retornará todos os pares chave/valor disponíveis.

Exemplo


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));
        }
   }
}

Saída

System.getenv(PATH) = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin System.getenv(TEMP) = null PATH=/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_COM PILER_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
Você pode obter uma saída diferente dependendo do seu sistema operacional.

System.getProperty()

Também podemos usar java.lang.System.getProperty() em Java para recuperar o valor da chave especificada passada como parâmetro para esse método. Este método é usado para recuperar as propriedades do sistema, ou seja, informações sobre o sistema local e configurações. Se a variável de ambiente estiver presente como uma propriedade do sistema em java, é melhor usar System.getProperty() para obter valor de maneira independente da plataforma. O valor das propriedades pode ser alterado no tempo de execução, mas não é o caso das variáveis ​​de ambiente.

Declaração


public String getProperty(String name)
Aqui, name é o parâmetro usado para especificar a chave para a qual precisávamos do valor.

Retornar

Ele retornará o valor da chave ou nulo.

Exemplo


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")); 
    }
}

Saída

user.name: home do compilador: nulo os.name: Linux

Conclusão

Esperamos que agora você entenda o que são e como obter variáveis ​​de ambiente em java, sua finalidade e como usar métodos para obtê-las. Sinta-se à vontade para praticar e volte sempre que precisar de mais assistência. Feliz aprendizado!
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION