Homebrew로 설치한 Java, JAVA_HOME 설정 방법 차이점

Java를 Homebrew로 설치하면 JAVA_HOME을 설정할 때 여러 가지 경로를 볼 수 있습니다. 대표적으로 아래 두 가지 방법이 있는데, 어떤 차이가 있는지 궁금했습니다.

# 1. 심볼릭 링크
export JAVA_HOME="/usr/local/opt/openjdk@17"

# 2. 실제 설치 경로
export JAVA_HOME="/opt/homebrew/Cellar/openjdk@17/17.0.14/libexec/openjdk.jdk/Contents/Home"

1. /usr/local/opt/openjdk@17 경로 (심볼릭 링크)

이 경로는 Homebrew가 제공하는 심볼릭 링크입니다. Homebrew에서 패키지를 설치하면 /usr/local/opt/ 아래에 해당 패키지의 최신 버전을 가리키는 링크가 생성됩니다. 💡 심볼릭 링크(Symbolic Link)란?

심볼릭 링크(심링, Symlink)는 **파일이나 디렉터리에 대한 "가상적인 참조(포인터)"입니다. 쉽게 말해, 바로가기(Shortcut) 같은 개념입니다. (삭제해도 원본 파일은 영향을 받지 않음 , 반대로 원본이 삭제되면 깨진 링크가 됨)

✅ 장점

자동 관리: Java 버전을 업그레이드해도 이 경로는 변하지 않음 ✔ 유지 보수 편리: Homebrew가 최신 버전을 가리키도록 관리해줌 ✔ 권장 방식: 일반적인 사용에서는 이 경로를 설정하는 것이 가장 안전

🛑 단점

❌ 특정 Java 버전(예: 17.0.14)만을 고정해서 사용하기 어려움

2. /opt/homebrew/Cellar/... 경로 (실제 설치 경로)

이 경로는 Java가 실제로 설치된 디렉토리입니다. Homebrew는 패키지를 /opt/homebrew/Cellar/ 아래에 저장하며, 버전별로 별도 폴더가 생성됩니다.

예를 들어, OpenJDK 17.0.14가 설치되면:

bash복사편집/opt/homebrew/Cellar/openjdk@17/17.0.14/libexec/openjdk.jdk/Contents/Home

과 같은 경로가 됩니다.

✅ 장점

특정 버전 고정 가능: 특정 버전을 명확하게 지정하여 사용 가능

🛑 단점

업그레이드 시 경로 변경: Java 17.0.15로 업그레이드하면 경로가 바뀌므로 JAVA_HOME을 다시 설정해야 함 ❌ 유지 보수 불편: 업데이트마다 수동으로 환경 변수를 수정해야 함

🔥 최적의 설정 방법

대부분의 경우 심볼릭 링크 경로를 사용하는 것이 좋습니다. 따라서 JAVA_HOME을 설정할 때 아래처럼 사용하는 것을 권장합니다.

export JAVA_HOME="/usr/local/opt/openjdk@17"

또는, macOS에서 Homebrew로 설치한 최신 Java 17 버전을 자동으로 찾아 설정하려면 다음 명령어를 사용할 수 있습니다.

export JAVA_HOME=$(/usr/libexec/java_home -v 17)

이렇게 하면 최신 17 버전이 자동으로 적용되므로, 업데이트할 때마다 수동으로 JAVA_HOME을 수정할 필요가 없습니다.

✍️ 마무리

설정 방법
설명
추천 여부

/usr/local/opt/openjdk@17

Homebrew가 관리하는 심볼릭 링크

✅ 추천

/opt/homebrew/Cellar/...

특정 버전의 실제 설치 경로

⚠️ 특정 버전 고정 시 사용

💡 결론: 유지보수가 편한 /usr/local/opt/openjdk@17을 사용하자! 🚀

Last updated