IT/Java

JDK 여러 개 설치 후 java -version이 안 바뀔 때: JAVA_HOME·PATH 정리 순서 (Windows·macOS, 2026년 9월 21일 확인)

바른정보블로그 2026. 9. 21. 04:25

JDK 여러 개 설치 후 JAVA_HOME과 PATH 정리 순서를 안내하는 대표 이미지

JDK를 새로 깔았는데 터미널에서 java -version을 치면 여전히 예전 버전이 나오는 경우가 있습니다. 설치가 안 된 게 아니라 어떤 자바를 먼저 찾을지 정하는 PATH와 빌드 도구가 참조하는 JAVA_HOME이 서로 다른 곳을 가리키고 있어서 생기는 문제입니다. 이 글은 2026년 9월 21일 기준 오라클·마이크로소프트·Adoptium 공식 문서를 확인해 Windows와 macOS에서 기본 자바 버전을 바꾸는 순서를 정리했습니다.

3줄 결론

  • java -version은 PATH에서 가장 먼저 찾은 자바를 실행하고, Gradle·Maven·IDE는 보통 JAVA_HOME을 봅니다.
  • Windows는 설치 관리자가 만든 javapath 항목이 PATH 앞에 있으면 무엇을 깔아도 버전이 그대로입니다.
  • macOS는 /usr/libexec/java_home -v 버전으로 원하는 JDK 경로를 얻어 JAVA_HOME에 넣으면 됩니다.

먼저 현재 상태부터 확인

확인할 것 Windows 명령 macOS 명령
실행되는 자바 버전 java -version java -version
실제 실행 파일 경로 where java which java
JAVA_HOME 값 echo %JAVA_HOME% echo $JAVA_HOME
설치된 JDK 목록 탐색기에서 C:\Program Files\Java, C:\Program Files\Eclipse Adoptium /usr/libexec/java_home -V

오라클 문서에 따르면 macOS의 JDK는 /Library/Java/JavaVirtualMachines/jdk-<버전>.jdk에 설치되고, 명령줄에서 앱을 실행하면 시스템 기본 JDK가 쓰입니다.

버전이 안 바뀌는 대표 원인

원인 어디서 생기나 해결 방향
PATH 앞쪽에 예전 자바가 있다 Windows 오라클 설치 시 C:\Program Files\Common Files\Oracle\Java\javapath에 java.exe·javac.exe가 복사됨 PATH 순서를 바꾸거나 해당 항목을 정리
JAVA_HOME이 아예 없다 Adoptium(Temurin) MSI는 PATH 갱신만 기본이고 JAVA_HOME 갱신(FeatureJavaHome)은 선택 항목 설치 시 옵션을 켜거나 환경 변수를 직접 추가
압축본만 풀어 놓았다 마이크로소프트 OpenJDK 문서 기준 ZIP·TAR.GZ은 푼 폴더를 JAVA_HOME으로 직접 지정해야 함 JAVA_HOME과 PATH를 수동 설정
변경 후 기존 창에서 확인했다 환경 변수는 새로 연 터미널부터 적용 터미널·IDE를 완전히 종료 후 다시 실행
IDE는 별도 설정을 본다 IntelliJ의 Project SDK, Gradle JVM은 별개 프로젝트 설정에서 따로 지정

Windows에서 기본 JDK 바꾸기

  1. 작업 표시줄 검색창에 환경 변수를 입력하고 [시스템 환경 변수 편집]을 실행합니다.
  2. [고급] 탭에서 [환경 변수]를 누릅니다.
  3. 아래쪽 [시스템 변수] 목록에서 [새로 만들기]를 눌러 변수 이름 JAVA_HOME, 값에는 JDK 폴더 경로(예: C:\Program Files\Eclipse Adoptium\jdk-21.0.5.11-hotspot)를 넣습니다. bin 폴더가 아니라 그 상위 폴더입니다.
  4. 같은 목록에서 Path를 선택하고 [편집]을 누릅니다.
  5. [새로 만들기]%JAVA_HOME%\bin을 추가한 뒤 [위로 이동]을 눌러 ...\Common Files\Oracle\Java\javapath보다 위에 둡니다.
  6. [확인]을 세 번 눌러 모두 닫고, 열려 있던 명령 프롬프트·PowerShell·IDE를 종료합니다.
  7. 새 명령 프롬프트를 열어 java -versionwhere java로 확인합니다.

macOS에서 기본 JDK 바꾸기

  1. 터미널에서 /usr/libexec/java_home -V를 실행해 설치된 JDK 목록과 경로를 확인합니다.
  2. 원하는 버전의 경로를 확인합니다. 예: /usr/libexec/java_home -v 21
  3. zsh 사용자는 nano ~/.zshrc를 열고 다음 두 줄을 추가합니다.
    export JAVA_HOME=$(/usr/libexec/java_home -v 21)
    export PATH=$JAVA_HOME/bin:$PATH
  4. Ctrl+O, Enter, Ctrl+X로 저장하고 나옵니다.
  5. source ~/.zshrc를 실행하거나 터미널을 새로 엽니다.
  6. java -version, echo $JAVA_HOME으로 확인합니다.
  7. 한 번만 다른 버전으로 실행하려면 오라클 문서의 예시처럼 /usr/libexec/java_home -v 25 --exec javac -version 형태로 직접 지정할 수 있습니다.

주의사항

  • JAVA_HOME에는 bin을 포함하지 않습니다. ...\jdk-21까지만 적습니다.
  • Windows에서 setx로 설정하면 현재 열려 있는 창에는 적용되지 않습니다. 새 창에서 확인하세요.
  • 마이크로소프트 문서는 같은 JDK 버전을 EXE·MSI·ZIP 중 한 가지 방식으로만 설치하라고 안내합니다. 방식을 바꾸려면 기존 설치를 먼저 제거해야 합니다.

그래도 안 바뀔 때 추가 점검

  1. where java 결과가 여러 줄이면 맨 위 경로가 실제로 실행되는 자바입니다. 그 경로가 어느 폴더인지 확인하세요.
  2. PATH에 %JAVA_HOME%\bin 대신 예전 JDK의 절대 경로가 남아 있는지 확인합니다.
  3. IntelliJ는 [File] - [Project Structure] - [Project]의 SDK와 [Settings] - [Build, Execution, Deployment] - [Build Tools] - [Gradle]의 Gradle JVM을 각각 확인해야 합니다. 관련 증상은 Gradle JVM 버전 오류 해결에서 다룹니다.
  4. 터미널이 zsh가 아니라 bash면 ~/.bash_profile을 수정해야 합니다. echo $SHELL로 확인하세요.

FAQ

Q1. JDK를 여러 개 깔아 두어도 괜찮나요?
문제없습니다. 실행 시점에 어떤 경로를 쓰는지만 명확하면 됩니다. 프로젝트별로 다른 버전을 쓰는 경우가 오히려 일반적입니다.

Q2. JAVA_HOME만 바꾸면 java -version도 바뀌나요?
PATH에 %JAVA_HOME%\bin(macOS는 $JAVA_HOME/bin)이 앞쪽에 들어 있어야 바뀝니다. 그렇지 않으면 빌드 도구만 새 버전을 씁니다.

Q3. 예전 JDK는 지워야 하나요?
반드시 지울 필요는 없습니다. 다만 사용하지 않는 버전이 PATH에 남아 혼란을 준다면 PATH 항목부터 정리하는 편이 안전합니다.

함께 보면 좋은 글

공식 출처