CodeGym /Blog Java /Random-PL /Pobierz zmienne środowiskowe w Javie
Autor
Vasyl Malik
Senior Java Developer at CodeGym

Pobierz zmienne środowiskowe w Javie

Opublikowano w grupie Random-PL

Co to są zmienne środowiskowe?

Każdy język programowania komputerów zawiera zmienne i stałe, które przydzielają unikalne lokalizacje pamięci, zawierające informacje do wykorzystania przez programy. Wartości stałych nie można zmieniać, ale można zmienić wartość zmiennej. Zmienne środowiskowe to pary klucz/wartość, których wartość jest ustawiana poza programem, a ich odwołanie jest zawsze dostępne dla programu w dowolnym momencie. Zarówno klucz, jak i wartość są ciągami znaków. Konwencje dotyczące ustawiania i używania zmiennych środowiskowych zawsze różnią się w zależności od systemu operacyjnego i interpretera wiersza poleceń. Są zawsze globalnie dostępne dla każdej aplikacji uruchomionej w systemie.

Przykład


PATH = "C:\\WINDOWS\system32;"
Tutaj Path jest zmienną środowiskową ustawioną poza programem, ale dostępną dla każdego programu działającego w systemie Windows.

Przypadek użycia

Jak wiemy każda zmiana w programie musi zostać wykonana lub ponownie wdrożona na serwer, co może wywołać niepożądane skutki uboczne w produkcji. Tak więc głównym celem wprowadzania zmiennych środowiskowych jest ciągłe ograniczanie tego wykonywania i wdrażania.

Jak uzyskać zmienne środowiskowe w Javie?

Zobaczmy, jak uzyskać zmienne środowiskowe w Javie. Java zapewnia nam 2 sposoby uzyskiwania zmiennych środowiskowych w programie Java.
  1. System.pobierzv()

  2. System.getProperty()

Teraz przyjrzyjmy się szczegółowo obu z nich, jeden po drugim.

System.pobierzv()

Metoda System.getenv() służy do pobierania wszystkich zmiennych środowiskowych, ale jeśli określona nazwa klucza zostanie podana jako parametr, pobrana zostanie jego wartość. Metoda java.lang.System.getenv() zawsze zwraca mapę łańcuchową wszystkich dostępnych zmiennych środowiskowych.

Deklaracja


public static String getenv(String name)
Tutaj nazwa jest parametrem używanym do określenia klucza, dla którego potrzebowaliśmy wartości.

Powrót

Zwróci wartość klucza lub null, jeśli podany parametr nie jest powiązany z żadnym kluczem. Jeśli parametr nie zostanie przekazany, zwróci wszystkie dostępne pary klucz/wartość.

Przykład


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

Wyjście

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 _ADDR=10.0.14.233 PROGRAMIZ_COMPILER_PORT_80_TCP=tcp://10.0.10.151:80 PROGRAMIZ_COMPILER_PORT_80_TCP_PROTO=tcp PWD=/aplikacja 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_SERV ICE_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_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
W zależności od systemu operacyjnego możesz otrzymać inny wynik.

System.getProperty()

Możemy również użyć java.lang.System.getProperty() w Javie, aby pobrać wartość dla określonego klucza przekazanego jako parametr do tej metody. Ta metoda służy do pobierania właściwości systemu, czyli informacji o systemie lokalnym i konfiguracjach. Jeśli zmienna środowiskowa jest obecna jako właściwość systemowa w Javie, lepiej jest użyć System.getProperty() do uzyskania wartości w sposób niezależny od platformy. Wartość właściwości można zmienić w czasie wykonywania, ale nie w przypadku zmiennych środowiskowych.

Deklaracja


public String getProperty(String name)
Tutaj nazwa jest parametrem używanym do określenia klucza, dla którego potrzebowaliśmy wartości.

Powrót

Zwróci wartość klucza lub null.

Przykład


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

Wyjście

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

Wniosek

Mamy nadzieję, że już rozumiesz, czym są i jak uzyskać zmienne środowiskowe w Javie, ich cel i jak używać metod, aby je uzyskać. Nie krępuj się ćwiczyć i wracaj, gdy będziesz potrzebować dodatkowej pomocy. Miłej nauki!
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION