CodeGym /Java blog /Tilfældig /Hent miljøvariabler i Java
John Squirrels
Niveau
San Francisco

Hent miljøvariabler i Java

Udgivet i gruppen

Hvad er miljøvariabler?

Ethvert computerprogrammeringssprog indeholder variabler og konstanter, som tildeler unikke hukommelsesplaceringer, der indeholder information, der skal bruges af programmerne. Konstante værdier kan ikke ændres, men variablens værdi kan ændres. Miljøvariabler er nøgle/værdi-parret, hvis værdi er indstillet uden for programmet, og deres reference er altid tilgængelig for programmet til enhver tid. Både nøgle og værdi er strenge. Konventionerne for indstilling og brug af miljøvariabler er altid forskellige mellem operativsystemer og kommandolinjefortolkere. De er altid globalt tilgængelige for alle programmer, der kører på systemet.

Eksempel


PATH = "C:\\WINDOWS\system32;"
Her er Path den miljøvariabel, der er sat uden for programmet, men tilgængelig for hvert program, der kører på Windows.

Use Case

Som vi ved, skal enhver ændring i programmet udføres eller geninstalleres på serveren, hvilket kan give uønskede bivirkninger i produktionen. Så hovedformålet med at introducere miljøvariabler er at begrænse denne udførelse og implementering igen og igen.

Hvordan får man miljøvariabler i Java?

Lad os se, hvordan du får miljøvariabler i java. Java giver os 2 måder at få miljøvariabler i Java-programmet på.
  1. System.getenv()

  2. System.getProperty()

Lad os nu se dem begge i detaljer én efter én.

System.getenv()

Metoden System.getenv() bruges til at hente alle miljøvariabler, men hvis et specifikt nøglenavn er angivet som en parameter, vil det hente sin værdi. java.lang.System.getenv() returnerer altid strengkortet over alle de tilgængelige miljøvariabler.

Erklæring


public static String getenv(String name)
Her er navn den parameter, der bruges til at angive den nøgle, som vi havde brug for værdien imod.

Vend tilbage

Det vil returnere værdien af ​​nøglen eller null, hvis den angivne parameter ikke er knyttet til nogen nøgle. Hvis parameteren ikke er bestået, vil den returnere alle de tilgængelige nøgle/værdi-par.

Eksempel


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

Produktion

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=t.51p.://10.10.5p. :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_TCG_0.0.1. _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_10=tc0.://10.0p.://10.0p. :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_COMPILER_WEBIZ0_COMPIGRAM_WEBIZ0=10.0.0.0. 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_80.1c2.://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/3 HTTOMEer=home
Du får muligvis et andet output afhængigt af dit operativsystem.

System.getProperty()

Vi kan også bruge java.lang.System.getProperty() i Java til at hente værdien for den angivne nøgle, der er sendt som en parameter til denne metode. Denne metode bruges til at hente systemegenskaberne, dvs. oplysninger om det lokale system og konfigurationer. Hvis miljøvariablen er til stede som en systemegenskab i java, er det bedre at bruge System.getProperty() til at få værdi på en platformsuafhængig måde. Værdien for egenskaber kan ændres under kørsel, men ikke tilfældet med miljøvariabler.

Erklæring


public String getProperty(String name)
Her er navn den parameter, der bruges til at angive den nøgle, som vi havde brug for værdien imod.

Vend tilbage

Det vil returnere værdien af ​​nøglen eller null.

Eksempel


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

Produktion

bruger.navn: kompilatorhjem: null os.navn: Linux

Konklusion

Vi håber, at du nu forstår, hvad der er og hvordan man får miljøvariabler i java, deres formål og hvordan man bruger metoder til at få dem. Du er velkommen til at øve dig og vende tilbage, når du har brug for mere hjælp. God læring!
Kommentarer
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION