Mik azok a környezeti változók?
Minden számítógépes programozási nyelv tartalmaz változókat és konstansokat, amelyek egyedi memóriahelyeket foglalnak le, és tartalmazzák a programok által használandó információkat. Az állandó értékek nem változtathatók, de a változó értéke megváltoztatható. A környezeti változók azok a kulcs/érték párok, amelyek értéke a programon kívül van beállítva, és hivatkozásuk mindig elérhető a program számára. Mind a kulcs, mind az érték karakterlánc. A környezeti változók beállítására és használatára vonatkozó konvenciók mindig eltérőek az operációs rendszerek és a parancssori értelmezők között. Mindig globálisan elérhetők a rendszeren futó összes alkalmazás számára.Példa
PATH = "C:\\WINDOWS\system32;"
Itt a Path a programon kívül beállított környezeti változó, amely minden Windowson futó program számára elérhető.
Használati eset
Mint tudjuk, a program minden módosítását végre kell hajtani vagy újra telepíteni kell a szerverre, ami nemkívánatos mellékhatásokat okozhat a termelésben. Tehát a környezeti változók bevezetésének fő célja ennek a végrehajtásnak és a telepítésnek a korlátozása újra és újra.Hogyan szerezhetek be környezeti változókat Java-ban?
Nézzük meg, hogyan szerezhetünk be környezeti változókat java-ban. A Java kétféle lehetőséget biztosít számunkra, hogy környezeti változókat szerezzünk be a Java programban.-
System.getenv()
-
System.getProperty()
System.getenv()
A System.getenv() metódus az összes környezeti változó lekérésére szolgál, de ha egy adott kulcsnév van megadva paraméterként, akkor lekéri az értékét. A java.lang.System.getenv() mindig az összes elérhető környezeti változó karakterlánc-leképezését adja vissza.Nyilatkozat
public static String getenv(String name)
Itt a név az a paraméter, amellyel megadjuk azt a kulcsot, amellyel szemben szükségünk volt az értékre.
Visszatérés
A kulcs értékét vagy nullát adja vissza, ha a megadott paraméter nincs társítva egyetlen kulccsal sem. Ha a paramétert nem adjuk át, akkor az összes elérhető kulcs/érték párt visszaadja.Példa
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));
}
}
}
Kimenet
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=tc.1://1://10.1.1.1. :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_SEVUIICE_PORT_80_TCP_RAM_PORTS_EVICE_COM_00 CP_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_0.10.0.0. :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_ADDR_10 PROGRAM_10.10.10. _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_CP_UI_c.01.3=t 80 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/compleri
Az operációs rendszertől függően eltérő kimenetet kaphat.
System.getProperty()
A java.lang.System.getProperty() segítségével is lekérhetjük a metódusnak paraméterként átadott megadott kulcs értékét. Ez a módszer a rendszertulajdonságok, azaz a helyi rendszerrel és konfigurációkkal kapcsolatos információk lekérésére szolgál. Ha a környezeti változó rendszertulajdonságként van jelen a Java-ban, akkor jobb a System.getProperty() használata az érték platformfüggetlen módon történő lekéréséhez. A tulajdonságok értéke futás közben módosítható, de a környezeti változók esetében nem.Nyilatkozat
public String getProperty(String name)
Itt a név az a paraméter, amellyel megadjuk azt a kulcsot, amellyel szemben szükségünk volt az értékre.
Visszatérés
A kulcs vagy null értékét adja vissza.Példa
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"));
}
}
Kimenet
user.name: fordító kezdőlapja: null os.name: Linux
GO TO FULL VERSION