Apple Silicon 맥에 OpenJDK 설치 및 환경 변수 설정 (+여러 JDK 버전 관리)

    신형 맥은 x86 기반의 intel 칩을 손절하고 자체 개발한 ARM 기반 Apple Silicon인 M1 및 M2 칩셋을 탑재하여 출시하고 있다.

    이렇게 두 칩셋은 아키텍쳐가 다르기 때문에 각 아키텍쳐를 지원하는 올바른 버전의 소프트웨어를 사용해야 한다.

     

    azul의 OpenJDK 설치 파일 다운로드

    Web 기반 SCADA 제작 툴인 Ignition8.1은 Azul의 JDK 11.0.15를 사용해 빌드되었다.

    마침 내가 사용하고 있는 툴도 azul의 JDK 11을 사용하는데, azul에 ARM기반 OpenJDK가 있다고 하여 이를 설치할 예정이다.

     

    https://www.azul.com/downloads/?package=jdk

     

    Downloads

    No matter the size of your company, Azul offers competitive pricing options to fit your needs, your budget, and your ambition.

    www.azul.com

    위 다운로드 페이지 중간 위치에서 OpenJDK 프리 빌드된 설치 파일(.dmg)을 다운로드 받을 수 있다.

    나는 JDK8과 11을 모두 사용하기 때문에 두 버전을 다운로드 받았다.

    다운로드 받은 파일을 설치.

     

    환경 변수 설정

    현재 mac의 기본 쉘인 zsh의 기본 설정은 모두 완료되었다고 가정, 본인의 홈 디렉토리에 있는 쉘 설정 파일 .zshrc을 연다.

    나는 text editor로 VSCode를 사용하기 때문에 다음 명령어를 실행해 설정 파일을 열 수 있다.

    code ~/.zshrc

    적당한 위치에 다음과 같이 적어 넣는다.

    # Java environmental variable
    export JAVA_HOME=$(/usr/libexec/java_home -v 11)
    export PATH=$PATH:$JAVA_HOME/bin
    export CLASSPATH=$JAVA_HOME/lib/tools.jar
    
    # switch JDK version and apply it to JAVA_HOME
    alias switchToJava8='export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)'
    alias switchToJava11='export JAVA_HOME=$(/usr/libexec/java_home -v 11)'

    지금 보니까 CLASSPATH는 윈도우에서만 설정하던 변수 같다.

    나는 JDK 8과 11 버전을 모두 사용하기 때문에 위와 같이 설정하여 JAVA_HOME 환경 변수를 원하는 JDK 버전으로 간단히 적용할 수 있게 설정했다.

    (구글링에 'multiple JDK version management' 이런 키워드로 검색하면 나옴)

     

    예를 들어 위와 같이 설정하면 부팅시 쉘 프로파일을 읽을 때 기본 JDK 버전은 11버전으로 설정된다.

    그리고 단축어로 설정한 명령어를 입력하면 설정해놓은 JDK 버전이 환경 변수로 등록된다.

    다만, 이는 사용자 홈 디렉토리에 존재하는 쉘 프로파일 .zshrc에 작성한 내용이기 때문에

    당연히 쉘을 재시작하면 앞서 적혀있는 스크립트가 실행되어 JAVA_HOME은 다시 JDK 11의 경로를 가리키게 된다.

    마지막으로 아래와 같이 환경 변수가 잘 적용 되었는지 확인할 수 있다.

     

    설치 및 환경 변수 확인

     

    댓글

    Designed by JB FACTORY