Was sind Umgebungsvariablen?
Jede Computerprogrammiersprache enthält Variablen und Konstanten, die eindeutige Speicherplätze zuweisen und Informationen enthalten, die von den Programmen verwendet werden sollen. Konstante Werte können nicht geändert werden, aber der Wert der Variablen kann geändert werden. Umgebungsvariablen sind das Schlüssel/Wert-Paar, dessen Wert außerhalb des Programms festgelegt wird und dessen Referenz dem Programm jederzeit zur Verfügung steht. Sowohl Schlüssel als auch Wert sind Zeichenfolgen. Die Konventionen zum Festlegen und Verwenden von Umgebungsvariablen unterscheiden sich immer zwischen Betriebssystemen und Befehlszeileninterpretern. Sie stehen jeder Anwendung, die auf dem System ausgeführt wird, jederzeit global zur Verfügung.Beispiel
PATH = "C:\\WINDOWS\system32;"
Hier ist Path die Umgebungsvariable, die außerhalb des Programms festgelegt wird, aber für jedes unter Windows ausgeführte Programm verfügbar ist.
Anwendungsfall
Wie wir wissen, muss jede Änderung im Programm ausgeführt oder erneut auf dem Server bereitgestellt werden, was zu unerwünschten Nebenwirkungen in der Produktion führen kann. Der Hauptzweck der Einführung von Umgebungsvariablen besteht also darin, diese Ausführung und Bereitstellung immer wieder einzuschränken.Wie erhalte ich Umgebungsvariablen in Java?
Sehen wir uns an, wie man Umgebungsvariablen in Java erhält. Java bietet uns zwei Möglichkeiten, Umgebungsvariablen im Java-Programm abzurufen.-
System.getenv()
-
System.getProperty()
System.getenv()
Die Methode System.getenv() wird zum Abrufen aller Umgebungsvariablen verwendet. Wenn jedoch ein bestimmter Schlüsselname als Parameter angegeben wird, wird dessen Wert abgerufen. java.lang.System.getenv() gibt immer die String-Zuordnung aller verfügbaren Umgebungsvariablen zurück.Erklärung
public static String getenv(String name)
Hier ist Name der Parameter, der verwendet wird, um den Schlüssel anzugeben, für den wir den Wert benötigen.
Zurückkehren
Es wird der Wert des Schlüssels oder null zurückgegeben, wenn der angegebene Parameter keinem Schlüssel zugeordnet ist. Wenn der Parameter nicht übergeben wird, werden alle verfügbaren Schlüssel/Wert-Paare zurückgegeben.Beispiel
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));
}
}
}
Ausgang
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_AD DR=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_H OST=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:8 0
PROGRAMIZ_COMPILER_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
Abhängig von Ihrem Betriebssystem erhalten Sie möglicherweise eine andere Ausgabe.
System.getProperty()
Wir können in Java auch java.lang.System.getProperty() verwenden , um den Wert für den angegebenen Schlüssel abzurufen, der als Parameter an diese Methode übergeben wurde. Mit dieser Methode werden die Systemeigenschaften, also Informationen über das lokale System und Konfigurationen, abgerufen. Wenn die Umgebungsvariable als Systemeigenschaft in Java vorhanden ist, ist es besser, System.getProperty() zu verwenden , um den Wert auf plattformunabhängige Weise abzurufen. Der Wert für Eigenschaften kann zur Laufzeit geändert werden, bei Umgebungsvariablen ist dies jedoch nicht der Fall.Erklärung
public String getProperty(String name)
Hier ist Name der Parameter, der verwendet wird, um den Schlüssel anzugeben, für den wir den Wert benötigen.
Zurückkehren
Es wird der Wert des Schlüssels oder null zurückgegeben.Beispiel
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"));
}
}
Ausgang
Benutzername: Compiler-Home: null Betriebssystemname: Linux
GO TO FULL VERSION