환경 변수란 무엇입니까?

모든 컴퓨터 프로그래밍 언어에는 고유한 메모리 위치를 할당하는 변수와 상수가 포함되어 있으며 프로그램에서 사용할 정보가 포함되어 있습니다. 상수 값은 변경할 수 없지만 변수 값은 변경할 수 있습니다. 환경 변수는 값이 프로그램 외부에서 설정되는 키/값 쌍이며 해당 참조는 항상 프로그램에서 항상 사용할 수 있습니다. 키와 값은 모두 문자열입니다. 환경 변수 설정 및 사용에 대한 규칙은 항상 운영 체제와 명령줄 인터프리터 간에 다릅니다. 시스템에서 실행되는 모든 응용 프로그램에서 항상 전역적으로 사용할 수 있습니다.


PATH = "C:\\WINDOWS\system32;"
여기서 Path는 프로그램 외부에 설정되어 있지만 Windows에서 실행되는 각 프로그램에서 사용할 수 있는 환경 변수입니다.

사용 사례

프로그램의 모든 변경 사항을 실행하거나 서버에 재배포해야 프로덕션에서 원치 않는 부작용이 발생할 수 있음을 알고 있습니다. 따라서 환경 변수를 도입하는 주요 목적은 이 실행 및 배포를 반복해서 제한하는 것입니다.

Java에서 환경 변수를 얻는 방법?

Java에서 환경 변수를 가져오는 방법을 살펴보겠습니다. Java는 Java 프로그램에서 환경 변수를 가져오는 두 가지 방법을 제공합니다.
  1. System.getenv()

  2. System.getProperty()

이제 두 가지를 하나씩 자세히 살펴보겠습니다.

System.getenv()

System.getenv () 메서드는 모든 환경 변수를 가져오는 데 사용되지만 특정 키 이름이 매개 변수로 제공되면 해당 값을 가져옵니다. java.lang.System.getenv()는 항상 사용 가능한 모든 환경 변수의 문자열 맵을 반환합니다.

선언


public static String getenv(String name)
여기서 name은 값이 필요한 키를 지정하는 데 사용되는 매개변수입니다.

반품

제공된 매개 변수가 키와 연결되지 않은 경우 키 또는 null 값을 반환합니다. 매개변수가 전달되지 않으면 사용 가능한 모든 키/값 쌍을 반환합니다.


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

산출

System.getenv(경로) = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin System.getenv(TEMP) = null 경로=/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 _호스트=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.23 3: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
운영 체제에 따라 다른 출력을 얻을 수 있습니다.

System.getProperty()

Java에서 java.lang.System.getProperty()를 사용하여 이 메소드에 매개변수로 전달된 지정된 키의 값을 검색할 수도 있습니다 . 이 방법은 시스템 속성, 즉 로컬 시스템 및 구성에 대한 정보를 검색하는 데 사용됩니다. 환경 변수가 Java의 시스템 속성으로 존재하는 경우 플랫폼 독립적인 방식으로 값을 가져오려면 System.getProperty()를 사용하는 것이 좋습니다 . 속성 값은 런타임에 변경할 수 있지만 환경 변수의 경우는 변경할 수 없습니다.

선언


public String getProperty(String name)
여기서 name은 값이 필요한 키를 지정하는 데 사용되는 매개변수입니다.

반품

키 또는 null 값을 반환합니다.


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

산출

user.name: 컴파일러 홈: null os.name: Linux

결론

이제 Java에서 환경 변수가 무엇이고 어떻게 가져오는지, 그 목적 및 이를 가져오는 메서드를 사용하는 방법을 이해하셨기를 바랍니다. 자유롭게 연습하고 도움이 더 필요할 때마다 다시 돌아오십시오. 행복한 학습!