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.-
System.getenv()
-
System.getProperty()
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
GO TO FULL VERSION