BigChan Engineering

M1 MacBook에 Java 개발 환경 설정 (feat. Eclipse & OpenJDK)

  Tips | 2022. 02. 06

개발 공부를 시작하게 되면서 가성비가 좋다는 M1 노트북을 구입했습니다. macOS도 처음인데 인텔도 아닌 M1을 구입하게 되면서 시작부터 난관에 부딪혔습니다. 열심히 검색해봤지만 프로그램 설치부터 환경설정까지 M1 유저를 위한 적당한 정보는 없었습니다. 때문에 2번이나 포맷을 한 끝에 M1(Apple Silicon)에 적절히 호환되는 Eclipse와 OpenJDK 버전을 찾았습니다.

우선 JDK(Java Development Kit)를 먼저 설치해야 합니다. JDK는 현재 Oracle사에서 배포하고 있지만 더 이상 무료 라이센스가 아닐 뿐만 아니라 현업 또는 교육 환경에서 자주 사용되는 Java 8/11과 같은 구버전은 Apple Silicon이 없는 것으로 알고 있습니다. 따라서, Apple Silicon이 제공되는 OpenJDK를 설치해 개발 환경을 구축했습니다.

글을 작성하는 이 시점에서 가장 잘 알려진 Apple Silicon OpenJDK는 Azule의 Zulu JDK입니다. Java 8부터 Apple Silicon이 릴리즈되어 있습니다. 다만 설치해야하는 Apple Silicon Eclipse와 호환되는 JDK 버전은 11이상이기 때문에 11버전으로 설치를 진행했습니다. 설치 방법은 간단합니다. Azul 홈페이지에서 Java 11을 macOS ARM-64bit로 검색하여 다운로드해 설치하면 됩니다.

Download Azul Zulu Java 11
( 현재 이미지와 세부 버전이 상이할 수 있습니다. 세부 버전과 관계없이 Java 11만 확인하여 설치하시면 됩니다. )

적절히 설치한 후, JDK가 올바르게 설치되었는지 터미널을 열어 확인해 봅니다.  command + space를 누르면 'Sportlight 검색'으로 접근할 수 있습니다. 'terminal'을 입력하여 터미널을 실행합니다. 그리고 터미널에 java -version를 입력하고 아래와 같이 버전과 실행 환경 등이 출력된다면 정상적으로 설치가 된 것입니다.

Type java -version on terminal
( 터미널 환경은 개인의 커스터마이징에 따라 다르게 보일 수 있습니다. )

Java 설치가 완료되었다면 이제 Path를 설정해 주어야 합니다. 컴퓨터에게 우리가 설치한 Java가 어디에 설치되어 있는지 알려주는 것입니다. macOS는 Windows처럼 그래픽 환경으로 Path를 설정하는 방법을 제공하지 않습니다. 열어둔 터미널에서 커맨드를 입력해 설정합니다. 다양한 에디터가 있지만 UI가 조금 더 그래피컬한 'nano'를 이용해보겠습니다. nano ~/.zshrc 를 입력하여 Z셸의 환경설정 파일에 들어갑니다. 그리고 아래와 같은 'export' 문장 2줄을 입력합니다. (카탈리나 이후 macOS부터 기본셸이 Z셸로 변경되었기 때문에 Bash셸에는 입력하지 않습니다. 입력하더라도 기본셸을 바꾸지 않는 한 제대로 적용되지 않을 수 있습니다.)

export JAVA_HOME="/Library/Java/JavaVirtualMachines/zulu-11.jdk/Contents/Home"
export PATH=${PATH}:$JAVA_HOME/bin
Type a couple of exports into the zshrc
( 설치시 경로를 다른 디렉토리로 지정했을 경우 해당되는 디렉토리로 입력합니다. )

오타없이 입력했다면 control + X 를 눌러서 'nano'에디터 화면을 나옵니다. 이 때 변경 사항을 저장할 것이냐고 물어봅니다. YEnter 를 눌러 저장을 완료하고 에디터를 종료합니다.

Type y when you come out from nano editor
( 당황하지 않습니다. )

Java 설치 및 Path 설정이 완료되었습니다. 친숙하지 않은 터미널은 종료합니다. 이제 Eclipse를 설치합니다. Eclipse는 2021년 12월에 Apple Silicon이 포함된 정식 버전을 릴리즈하였습니다. Eclipse 홈페이지에 들어가서 2021-12R 버전을 다운로드합니다. Java를 이용해 웹 개발을 위한 교육을 수강중일 경우 Java EE를 설치합니다. (위는 Java 개발만을 위한 Eclipse이고, 아래는 JavaScript 등등 웹 개발을 위한 에디터가 플러그인되어 있습니다.)

Type y when you come out from nano editor
( AArch64는 ARM Architecture 64-bit를 의미합니다. )
Download Eclipse with the mirror you live in
( 설치시 mirror가 우리나라(Kakao Corp.)로 되어있지 않다면 다운로드가 느릴 수 있으니 아래의 Kakao Corp.를 선택합니다. )
Drag and Drop Eclipse icon to Applications
( 다운로드가 완료된 dmg 이미지를 연 후, Eclipse 아이콘을 좌측의 Applications 디렉토리에 드래그 앤 드랍합니다. )

이제 모든 설치가 완료되었습니다. Finder나 LaunchPad를 열어서 Eclipse를 실행해 줍니다. (옛 버전은 ini파일을 설정해 주어야 하지만, 2021-12 버전은 JRE가 플러그인되어 있어 바로 실행이 가능합니다. 또한, ini파일을 오히려 로컬의 Java/.../bin으로 설정할 경우 프로그램이 실행되지 않습니다.)

파란색 Eclipse가 실행되면 초기 설정이 필요합니다. 지금의 Eclipse는 초기 설치시 자동으로 연결되는 플러그인된 JRE로 설정되어 있으니 열심히 설치한 Zulu OpenJDK로 변경합니다. Eclipse 내 'Preferences' 단축키인 command + , 를 눌러서 설정창으로 접근합니다. 아래와 같이 설정한 후, 'Apply and close' 버튼을 눌러 저장합니다.

Edit JRE to our JDK which is zulu OpenJDK just set up
( JAVA_HOME을 맞게 설정했다면 위와 같이 Zulu JDK가 보입니다. )

이제 모든 설정이 완료되었습니다. 간단한 "Hello World"와 같은 콘솔 출력 프로그램을 코딩하여 아래 콘솔창에 설정된 경로의 JRE로 실행된다면 이상없이 설치와 설정이 마무리 된 것입니다.

Hello World!
( 위와 같이 설정한 경로로 동작되고 정상적으로 Hello World!가 출력되면 이상없이 설정된 것입니다. )

처음에 로제타를 이용해 Intel Mac과 같은 설치 방법으로 진행했으나 Apple Silicon 기반의 Eclipse가 릴리즈 되었다는 소식을 듣고 OpenJDK와 함께 둘 다 Apple Silicon으로 설치를 했습니다. (간혹 둘 중 하나가 로제타를 이용해 실행될 경우 호환성에 문제가 발생되어 실행 중 문제가 발생할 수 있다고 합니다.) 현재까지 교육을 들으면서 문제가 되거나 이상하게 작동한 적은 없었습니다.

저처럼 개발에 입문하면서 처음 M1 MacBook을 구입하신 분들께서 이 글을 읽고 적절히 개발 환경을 설정하길 바라면서 글을 마칩니다.