CodeGym /Java blog /Véletlen /Környezeti változók letöltése Java nyelven
John Squirrels
Szint
San Francisco

Környezeti változók letöltése Java nyelven

Megjelent a csoportban

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

  2. System.getProperty()

Most pedig lássuk mindkettőt részletesen egyenként.

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

Következtetés

Reméljük, hogy mostanra megérti, hogy mi az, és hogyan lehet a környezeti változókat beszerezni a Java-ban, céljukat, és hogyan használhatjuk a beszerzési módszereket. Nyugodtan gyakoroljon, és térjen vissza, amikor további segítségre van szüksége. Boldog tanulást!
Hozzászólások
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION