Jdk]환경 변수 설정

·

2 min read

상황

  • JDK를 “a”라는 경로에 설치했습니다.

  • “a”라는 경로에서 java를 실행했습니다. → 정상 작동

  • “b”라는 경로에서 java를 실행했습니다. → 작동 에러


P] 해결하고 싶은 상황

  • JDK가 설치 된 경로가 아닌 경로에서도 Java를 실행했을 때, Java가 정상 작동하도록 하고 싶습니다.

A] 시스템 환경 변수

  • Java가 존재하지 않는 경로에서도 OS가 Java의 경로를 인지할 수 있도록 도와줍니다.

Research. 시스템 환경 변수

Q1] 시스템 환경 변수가 무엇인가요?

  • 운영체제에서 프로그램이나 프로세스가 실행될 때 참조할 수 있는 전역 변수입니다.

  • 환경 변수 예시

    • PATH: 실행 파일 검색 경로

    • TEMP or TMP: 임시 파일 저장 경로

    • USERNAME: 현재 로그인한 사용자 이름


Q2] PATH 환경 변수가 무엇인가요?

PATH 환경 변수의 필요성

  • 매번 실행 파일의 전체 경로를 입력하지 않아도 되므로 편리합니다.

PATH 환경 변수의 특징

  • PATH 환경 변수에 경로를 입력하면, 현재 경로와 상관없이 명령어 & 실행 파일을 실행할 수 있습니다.

  • PATH에 나열된 경로는 앞에서부터 순차적으로 검색됩니다.

    • JAVA 17과 JAVA 21을 둘다 PATH 환경 변수에 등록했을 경우, 순서 상 먼저 등록되어 있는 JAVA가 적용됩니다.

cf. Window & Linux 경로 목록 간 구분자

    // Window - 구분자(세미콜론)
    C:\Windows\System32;C:\Program FIles\Java\jdk-17\bin;C:\Python39\Scripts

    // Linux/Unix - 구분자(콜론)
    /user/local/bin:/usr/bin:/bin:/usr/sbin

PATH 환경 변수 설정 과정

1] JDK를 설치합니다.

2] 설치한 JDK의 경로(A)를 확인합니다.

3] 내 PC 속성 > 탭: “고급” > 환경 변수 > 시스템 변수

  • 새로 만들기 > JAVA_HOME

  • JAVA_HOME: A 경로 입력

4] PATH

  • PATH: %JAVA_HOME%\bin 입력

PATH 환경 변수 확인하는 과정

1] cmd 또는 powershell을 실행합니다.

2] java --version 입력합니다.

3] 설치한 자바 버전과 동일한지 확인합니다.


Q3] PATH 환경 변수만 있으면 Java 실행이 잘 될 것 같은데 JAVA_HOME이 필요한가요?

JDK 경로의 일관성을 유지해줍니다.

  • JAVA_HOME에 JDK 경로를 지정해두면, 다른 설정에서 이를 참조만 하면 되므로 경로가 변경되더라도 JAVA_HOME만 수정하면 됩니다.

코드 및 스크립트에서 명확성을 제공해줍니다.

  • 많은 빌드 도구(예: Gradle, Maven)와 애플리케이션 설정 파일이 JAVA_HOME을 표준적으로 사용합니다.

  • Maven, Gradle, Tomcat 등의 도구는 JAVA_HOME 환경 변수가 설정되어 있어야 동작합니다. 이러한 프로그램들은 기본적으로 JAVA_HOME을 참조하여 JDK 경로를 확인합니다.