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

2025. 6. 3. 23:50·Java
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
저작자표시 비영리 (새창열림)

'Java' 카테고리의 다른 글

[Java] Model : DTO / VO / DAO / Utility  (0) 2024.01.31
[Java] Reflection API 알아보기  (0) 2024.01.10
[Java] JVM 구조와 메모리 영역  (0) 2024.01.05
[Java] 자바 실행 환경 JDK / JRE / JVM  (0) 2024.01.03
[Java] 자바 플랫폼 종류 (Java SE / EE / ME)  (0) 2024.01.02
'Java' 카테고리의 다른 글
  • [Java] Model : DTO / VO / DAO / Utility
  • [Java] Reflection API 알아보기
  • [Java] JVM 구조와 메모리 영역
  • [Java] 자바 실행 환경 JDK / JRE / JVM
s_ih_yun
s_ih_yun
  • s_ih_yun
    CODESYUN
    s_ih_yun
  • 전체
    오늘
    어제
    • 분류 전체보기 (339)
      • Web (8)
      • Java (7)
      • Spring (19)
      • Git (16)
      • MyBatis (1)
      • HTML & CSS (14)
      • JavaScript (11)
      • DevOps (4)
      • Cloud (8)
      • Lanuage (13)
        • C++ (3)
        • Python (10)
      • DB (1)
        • MySQL (1)
        • Oracle (2)
      • Computer Science (26)
        • Concept (3)
        • Algorithm (23)
      • Baekjoon (104)
        • 단계별로 풀어보기 (78)
      • CodeUp (98)
        • Python 기초 100제 (98)
      • Programmers (2)
      • Books (3)
      • etc (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

    • Syun's Pages
  • 인기 글

  • 태그

    CodeUp 기초 100제
    CSS
    oracle
    웹
    BOJ
    Cloud
    java
    자료구조
    Tistory
    JavaScript
    codeup
    Python
    알고리즘
    단계별로 풀어보기
    Programmers
    github
    c++
    C
    db
    HTML
    spring
    clean code
    SourceTree
    web
    VS Code
    myBatis
    MySQL
    git
    aws
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
s_ih_yun
[Mac] Java 17 설치 및 버전 변경 (JDK 17)
상단으로

티스토리툴바