콘텐츠로 이동

How to install JAVA 17 on Mac

머리말

Flutter(Android) 개발을 위해서는 Java가 필수로 설치되어야 합니다. 이 문서를 작성하는 시점에서 최신 버전인 Java 21은 Flutter와 호환성 문제로 많은 에러가 발생하고 있어, Java 17을 권장합니다.

Java 버전 주의사항

Flutter Android 개발에는 Java 17이 가장 안정적입니다. Java 21은 호환성 문제가 있을 수 있어요.

설치 과정

1. 기존 설치 확인

먼저 Java가 이미 설치되어 있는지 확인해보세요:

java -version

Homebrew로 설치된 OpenJDK 확인:

brew --prefix openjdk@17

2. Java 17 설치

OpenJDK 17을 설치합니다:

brew install openjdk@17

3. 환경변수 설정

~/.zshrc 파일에 다음 내용을 추가합니다:

1
2
3
# Java 17 환경변수 설정
export JAVA_HOME="$(brew --prefix openjdk@17)"
export PATH="$JAVA_HOME/bin:$PATH"

변경사항을 적용합니다:

source ~/.zshrc

4. 설치 확인

환경변수가 올바르게 설정되었는지 확인:

echo $JAVA_HOME
java -version

예상 결과:

1
2
3
openjdk version "17.0.x" xxxx-xx-xx
OpenJDK Runtime Environment Homebrew (build 17.0.x+x)
OpenJDK 64-Bit Server VM Homebrew (build 17.0.x+x, mixed mode, sharing)

시스템 Java 연결 (심볼릭 링크)

macOS 시스템이 Java를 인식할 수 있도록 심볼릭 링크를 생성합니다:

sudo ln -sfn $(brew --prefix openjdk@17)/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk

연결 확인:

/usr/libexec/java_home -v 17

Flutter 프로젝트에서 Java 사용하기

Flutter에서 Java를 사용하는 방법은 두 가지가 있어요:

방법 1: 프로젝트별 설정 (gradle.properties)

각 Flutter 프로젝트마다 개별적으로 Java 경로를 설정하는 방법입니다.

단계:

  1. Flutter 프로젝트의 android/gradle.properties 파일을 엽니다
  2. 다음 줄을 추가합니다:
org.gradle.java.home=/opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk/Contents/Home

경로 주의사항

사용자마다 경로가 다를 수 있습니다. 정확한 경로는 /usr/libexec/java_home -v 17 명령어로 확인하세요.

장점: 프로젝트별로 다른 Java 버전 사용 가능
단점: 프로젝트마다 설정해야 함

방법 2: Flutter 전역 설정 (권장)

Flutter 전체 설정에 Java 경로를 등록하는 방법입니다.

flutter config --jdk-dir=$JAVA_HOME

설정 확인:

flutter config --list

예상 결과:

All Settings:
  enable-web: (Not set)
  enable-linux-desktop: (Not set)
  enable-macos-desktop: (Not set)
  enable-windows-desktop: (Not set)
  enable-android: (Not set)
  enable-ios: (Not set)
  enable-fuchsia: (Not set) (Unavailable)
  enable-custom-devices: (Not set)
  cli-animations: (Not set)
  enable-native-assets: (Not set) (Unavailable)
  enable-swift-package-manager: (Not set)
  explicit-package-dependencies: (Not set)
  android-sdk: /Users/username/Library/Android/sdk
  jdk-dir: /opt/homebrew/opt/openjdk@17

장점: 모든 Flutter 프로젝트에 자동 적용
단점: 모든 프로젝트가 같은 Java 버전 사용

권장사항

방법 2 (Flutter 전역 설정)를 권장합니다. 대부분의 경우 모든 프로젝트에서 같은 Java 버전을 사용하기 때문이에요.

문제 해결

일반적인 문제들

1. Command not found 에러

# zsh 재시작 또는 새 터미널 열기
source ~/.zshrc

2. Permission denied 에러

# 권한 확인
ls -la /Library/Java/JavaVirtualMachines/

3. Flutter doctor에서 Java 인식 안됨

1
2
3
# Flutter 설정 확인
flutter doctor -v
flutter config --jdk-dir=$JAVA_HOME

여러 Java 버전 관리

여러 Java 버전이 설치되어 있다면:

1
2
3
4
5
# 모든 Java 버전 확인
/usr/libexec/java_home -V

# 특정 버전으로 전환
export JAVA_HOME=$(/usr/libexec/java_home -v 17)

마무리

이제 Java 17이 성공적으로 설치되었고 Flutter 프로젝트에서 사용할 수 있어요!

최종 확인 체크리스트:

  • java -version으로 Java 17 확인
  • echo $JAVA_HOME으로 환경변수 확인
  • flutter config --list에서 jdk-dir 확인
  • flutter doctor에서 에러 없음 확인

추가 질문이나 문제가 있다면 언제든 물어보세요!

📞 도움이 필요하신가요?

스크립트 사용 중 문제가 발생하거나 개선 제안이 있으시다면: