Jdk]환경 변수 설정
상황
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 경로를 확인합니다.