CodeGym /Java Blog /Willekeurig /Omgevingsvariabelen ophalen in Java
John Squirrels
Niveau 41
San Francisco

Omgevingsvariabelen ophalen in Java

Gepubliceerd in de groep Willekeurig

Wat zijn omgevingsvariabelen?

Elke computerprogrammeertaal bevat variabelen en constanten die unieke geheugenlocaties toewijzen, die informatie bevatten die door de programma's moet worden gebruikt. Constante waarden kunnen niet worden gewijzigd, maar de waarde van de variabele kan worden gewijzigd. Omgevingsvariabelen zijn het sleutel/waarde-paar waarvan de waarde buiten het programma wordt ingesteld en hun referentie is altijd en op elk moment beschikbaar voor het programma. Zowel de sleutel als de waarde zijn strings. De conventies voor het instellen en gebruiken van omgevingsvariabelen verschillen altijd tussen besturingssystemen en opdrachtregeltolken. Ze zijn altijd wereldwijd beschikbaar voor elke applicatie die op het systeem draait.

Voorbeeld


PATH = "C:\\WINDOWS\system32;"
Pad is hier de omgevingsvariabele die buiten het programma is ingesteld, maar beschikbaar is voor elk programma dat op Windows draait.

Gebruik casus

Zoals we weten, moet elke wijziging in het programma worden uitgevoerd of opnieuw worden geïmplementeerd op de server, wat ongewenste neveneffecten in de productie kan veroorzaken. Het belangrijkste doel van het introduceren van omgevingsvariabelen is dus om deze uitvoering en implementatie keer op keer te beperken.

Hoe omgevingsvariabelen in Java te krijgen?

Laten we eens kijken hoe we omgevingsvariabelen in Java kunnen krijgen. Java biedt ons 2 manieren om omgevingsvariabelen in het Java-programma te krijgen.
  1. Systeem.getenv()

  2. Systeem.getProperty()

Laten we ze nu een voor een in detail bekijken.

Systeem.getenv()

De methode System.getenv() wordt gebruikt om alle omgevingsvariabelen op te halen, maar als een specifieke sleutelnaam als parameter wordt opgegeven, wordt de waarde ervan opgehaald. java.lang.System.getenv() retourneert altijd de stringmap van alle beschikbare omgevingsvariabelen.

Verklaring


public static String getenv(String name)
Hier is naam de parameter die wordt gebruikt om de sleutel op te geven waarvoor we de waarde nodig hadden.

Opbrengst

Het retourneert de waarde van de sleutel of null als de opgegeven parameter aan geen enkele sleutel is gekoppeld. Als de parameter niet wordt doorgegeven, worden alle beschikbare sleutel/waarde-paren geretourneerd.

Voorbeeld


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

Uitgang

Systeem.getenv(PATH) = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin Systeem.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_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 :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 HOME=/home/compiler
Mogelijk krijgt u een andere uitvoer, afhankelijk van uw besturingssysteem.

Systeem.getProperty()

We kunnen ook java.lang.System.getProperty() in Java gebruiken om de waarde op te halen voor de opgegeven sleutel die als parameter aan deze methode is doorgegeven. Deze methode wordt gebruikt om de systeemeigenschappen op te halen, dwz informatie over het lokale systeem en configuraties. Als de omgevingsvariabele aanwezig is als een systeemeigenschap in Java, is het beter om System.getProperty() te gebruiken om op een platformonafhankelijke manier waarde te verkrijgen. De waarde voor eigenschappen kan tijdens runtime worden gewijzigd, maar dit is niet het geval bij omgevingsvariabelen.

Verklaring


public String getProperty(String name)
Hier is naam de parameter die wordt gebruikt om de sleutel op te geven waarvoor we de waarde nodig hadden.

Opbrengst

Het retourneert de waarde van de sleutel of null.

Voorbeeld


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

Uitgang

user.name: compiler home: null os.name: Linux

Conclusie

We hopen dat u nu begrijpt wat omgevingsvariabelen zijn en hoe u ze in Java kunt krijgen, wat hun doel is en hoe u methoden kunt gebruiken om ze te krijgen. Voel je vrij om te oefenen en terug te komen wanneer je meer hulp nodig hebt. Veel leerplezier!
Opmerkingen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION