Java

[Mac] Java 17 설치 및 버전 변경 (JDK 17)

s_ih_yun 2025. 6. 3. 23:50
728x90

 

JDK21이 설치된 환경에서 17로 내려야 될 상황이 있었습니다 😒

 

 

1. Homebrew를 통해 JDK 17 설치

$ brew install openjdk@17
  • homebrew : macOS에서 패키지를 관리하는 도구
  • homebrew 저장소에서 openjdk@17 패키지를 찾아 설치하는 명령어
    • 설치 후 디렉토리 : /opt/homebrew/opt/openjdk@17

 

2. JDK 디렉토리를 macOS가 인식할 수 있는 Symbolic Link 생성

$ sudo ln -sfn /opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk
  • macOS는 기본적으로 JDK 설치 경로를 /Library/Java/JavaVirtualMachines 아래서 탐색
  • 위 명령어는 심볼릭 링크(ln -s)를 만들어 openjdk@17의 설치 경로를 ↑로 연결
    • -sfn 옵션
      • -s : 심볼릭 링크
      • -f : 강제로 덮어쓰기
      • -n : 대상이 디렉토리라도 심볼릭 링크로 만들기
  • System Preferences > Java 나 macOS 시스템이 JDK17을 인식할 수 있게 한다

 

3. PATH 환경 변수 설정

$ echo 'export PATH="/opt/homebrew/opt/openjdk@17/bin:$PATH"' >> ~/.zshrc
  • 환경 변수 설정
    • 터미널에서 java, javac 명령을 사용할 때, JDK 17의 bin 디렉토리를 먼저 찾도록 설정
$ source ~/.zshrc
  • 현재 터미널 세션에 방금 변경한 설정 즉시 적용
    • (기존) 새 터미널 창을 열 때 적용됨
  • 기존 설치된 JDK 20과 설정 충돌있어 설정을 추가하는 게 아닌 파일 수정 필요
  • 충돌 코드(~/.zshrc)
    • JAVA_HOME : JDK 20을 가리키고 있으며, 경로에 bin까지 들어가서는 안됨
    • PATH : 윗 줄에 먼저 JDK 20이 들어가는 라인이 있어 먼저 실행될 가능성 높음
    • CLASSPATH : 오류는 아니지만, Maven/Gradle이 관리하기 때문에 특별한 이유 없으면 설정할 필요 X
export JAVA_HOME=/Users/syun/Library/Java/JavaVirtualMachines/openjdk-20.0.1/Contents/Home/bin
export CLASSPATH=/Users/syun/Library/Java/JavaVirtualMachines/openjdk-20.0.1/Contents/Home/lib
export PATH=$JAVA_HOME/bin:$PATH

export PATH="/opt/homebrew/opt/openjdk@17/bin:$PATH"

 

 

3. ~/.zshrc 파일에서 JAVA_HOME, PATH 환경 변수 설정

$ vi ~/.zshrc
$ source ~/.zshrc
  • ~/.zshrc 파일 : Zsh 셸의 설정 파일
    • 터미널을 실행할 때마다 자동으로 적용될 수 있도록 함
  • 아래 내용으로 설정 파일 변경
export JAVA_HOME="/opt/homebrew/opt/openjdk@17"
export PATH="$JAVA_HOME/bin:$PATH"

 

4. 결과 확인

$ java -version
*openjdk version "17.0.15" ...*

$ echo $JAVA_HOME
*/opt/homebrew/opt/openjdk@17*

 

 

 

📌 References

https://withwltn.tistory.com/33

https://velog.io/@may_yun/Mac-M1-Java-17-설치

728x90