CodeGym /Java Blog /무작위의 /Java에서 환경 변수 가져오기
John Squirrels
레벨 41
San Francisco

Java에서 환경 변수 가져오기

무작위의 그룹에 게시되었습니다

환경 변수란 무엇입니까?

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


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에서 환경 변수가 무엇이고 어떻게 가져오는지, 그 목적 및 이를 가져오는 메서드를 사용하는 방법을 이해하셨기를 바랍니다. 자유롭게 연습하고 도움이 더 필요할 때마다 다시 돌아오십시오. 행복한 학습!
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION