brew install openjdk@17
For the system Java wrappers to find this JDK, symlink it with
sudo ln -sfn /opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk
설치를 완료하면 시스템이 설치한 openjdk@17
을 인식할 수 있도록 심볼릭 링크를 걸어주어야 한다고 한다. 안내에 따라 sudo ln -sfn
이하의 명령어를 입력한다.
심볼릭 링크는 복사본을 만들어 원본과 링크하는 바로가기와 유사하다.
openjdk@17 is keg-only, which means it was not symlinked into /opt/homebrew,
because this is an alternate version of another formula.
이어서 openjdk@17
는 keg-only라는 안내가 나온다.
keg는 어떤 formula(소프트웨어)의 한 버전을 말한다. 예를 들어 터미널에서 자바를 실행할 때 java
라는 prefix(실행 명령어)를 사용하는데, java
는 여러 버전의 자바 중 한 가지 버전, 즉 한 개의 keg에만 링크될 수 있다. (생각해보면 여러 버전의 자바를 한꺼번에 실행하는 것은 말이 되지 않는다.)
따라서 쉽게 말해 설치한 formula가 keg-only
라는 것은 설치가 완료된 뒤 해당 소프트웨어의 디폴트 버전으로 자동 설정되지 않는다는 얘기다.
If you need to have openjdk@17 first in your PATH, run:
echo 'export PATH="/opt/homebrew/opt/openjdk@17/bin:$PATH"' >> ~/.zshrc
java
와 링크될 버전을 openjdk@17
로 변경하려면 Homebrew의 안내에 따라 설치한 openjdk@17
를 ~/.zshrc
에 PATH
로 설정한다.
$ soruce ~/.zshrc
변경 내역을 반영한다.
$ java --version
openjdk 17.0.10 2024-01-16
OpenJDK Runtime Environment Homebrew (build 17.0.10+0)
OpenJDK 64-Bit Server VM Homebrew (build 17.0.10+0, mixed mode, sharing)
java --version
으로 확인해보면 openjdk 17 버전이 실행되는 것을 확인할 수 있다.
PATH
를 설정하지 않아도 인텔리제이에서는 프로젝트 세팅을 통해 다른 버전의 JDK를 선택할 수 있다.