JAVA_HOME is not set, java command not found 에러 해결법. Mac은 .zshrc에 두 줄, Windows는 환경변수 창에서 등록하면 끝난다. 버전 충돌, IntelliJ·안드로이드 스튜디오 JDK 인식 문제까지 케이스별로 정리한다.
한 줄 요약: JAVA_HOME은 자바가 설치된 폴더 위치를 운영체제에 알려주는 환경변수다. 이게 안 잡혀 있으면 터미널에서 java 명령어가 안 되거나, 스프링·안드로이드 스튜디오·Maven 같은 도구들이 자바를 찾지 못해 실행이 안 된다.
이런 에러가 나면 이 글이 필요하다
JAVA_HOME is not set
Could not find JAVA_HOME
java: command not found
안드로이드 스튜디오·IntelliJ 실행 시 JDK를 찾을 수 없다는 오류
Maven 빌드 시 JAVA_HOME environment variable is not set
JAVA_HOME이 뭔가
컴퓨터에 자바를 설치하면 특정 폴더에 파일들이 들어간다. 예를 들어 Mac이라면 /Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home 같은 경로가 된다. JAVA_HOME은 이 경로를 "자바 있는 곳이 여기야"라고 운영체제에 알려주는 이름표다.
이 이름표가 없으면 스프링, Maven, Gradle, 안드로이드 스튜디오처럼 자바를 필요로 하는 도구들이 "자바 어디 있어?"를 못 찾아서 실행이 안 된다. 자바를 설치했는데 왜 안 되지? 싶을 때 십중팔구 JAVA_HOME 문제다.
Mac에서 JAVA_HOME 설정하기
Mac은 터미널을 쓰는 셸(기본 zsh)의 설정 파일에 JAVA_HOME을 등록한다.
1단계 — 자바가 설치된 경로 확인
아래 명령어를 터미널에 입력하면 현재 설치된 JDK 경로를 알 수 있다.
Mac — 설치된 JDK 경로 확인
/usr/libexec/java_home
# 결과 예시: /Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
# 설치된 JDK 전체 목록 보기
/usr/libexec/java_home -V
2단계 — .zshrc 파일에 등록
터미널에서 홈 폴더에 있는 .zshrc 파일을 열어 아래 내용을 추가한다. (bash를 쓴다면 .bash_profile 파일에 추가)
~/.zshrc 에 추가
# JAVA_HOME 등록
export JAVA_HOME=$(/usr/libexec/java_home)
export PATH=$JAVA_HOME/bin:$PATH
파일을 저장한 뒤 아래 명령어로 변경사항을 현재 터미널에 바로 적용한다. (또는 터미널을 껐다 켜도 된다.)
케이스 1: JAVA_HOME is not set 또는 Could not find JAVA_HOME 원인: JAVA_HOME 환경변수 자체가 등록되지 않았거나, 등록 후 터미널을 껐다 켜지 않음 해결: 위 Mac/Windows 등록 절차를 진행한 뒤 터미널(또는 cmd)을 새로 열고 다시 확인한다. Mac은 source ~/.zshrc를 한 번 더 실행해도 된다.
케이스 2: java: command not found 원인: PATH에 $JAVA_HOME/bin이 등록되지 않았거나 자바 자체가 설치 안 됨 해결:which java(Mac) 또는 where java(Windows)로 자바 실행 파일 위치를 확인한다. 아무것도 안 나오면 자바를 먼저 설치해야 한다. 설치 후 PATH에 $JAVA_HOME/bin을 추가한다.
케이스 3: JAVA_HOME은 잡혔는데 IntelliJ / 안드로이드 스튜디오에서 JDK를 못 찾는 경우 원인: IDE는 시스템 환경변수 대신 IDE 자체 설정에서 JDK 경로를 따로 관리하는 경우가 있음 해결: IntelliJ → File → Project Structure → SDKs에서 JDK 경로를 수동으로 지정한다. 안드로이드 스튜디오는 Settings → Build, Execution, Deployment → Build Tools → Gradle에서 JDK를 지정한다.
케이스 4: JAVA_HOME이 잡혔는데 버전이 다름 (예: 8 지정했는데 17이 뜸) 원인: 시스템에 JDK가 여러 개 설치되어 있고, PATH 우선순위 때문에 다른 버전의 java가 먼저 실행됨 해결: Mac: export JAVA_HOME=$(/usr/libexec/java_home -v 8) 처럼 버전 명시. Windows: 시스템 변수 Path에서 원하지 않는 자바 경로를 삭제하거나 순서를 조정한다.
자바 설치부터 해야 한다면
자바를 아직 설치 안 했다면 아래 공식 배포판 중 하나를 받는다. 상업용으로 쓴다면 Oracle JDK 대신 무료 오픈소스 배포판을 쓰는 게 낫다.