MacOs java 설치 및 버전 변경

곽수경·2023년 10월 3일

글 목차

jdk 설치

  1. jdk 파일을 다운로드 받아서 설치하기
  2. homebrew 명령어를 사용하여 jdk 설치하기

java 환경변수 설정 및 버전 변경

  1. jdk 설치 후 환경변수 설정
  2. java 버전 변경 방법

Java로 프로그래밍을 시작하려면 (1) JDK를 컴퓨터에 설치하고 (2) 환경 변수를 설정해주어야 한다.

JDK란?

JDK (Java Development Kit)

  • Java 환경에서 돌아가는 프로그램을 개발하는데 필요한 툴들을 모아놓은 소프트웨어 패키지
  • JDK 종류
    • Oracle JDK : 상업적 이용할 경우 유료
    • OpenJDK, Zulu JDK, AdoptOpenJDK 등 무료 JDK도 있음
    • JDK 배포판에 따라 그에 내장된 JVM도 다를 수 있음
  • JRE + 개발 도구(컴파일러, Java 디버거 등)

JRE (Java Runtime Environment)

  • 자바 애플리케이션을 실행할 수 있도록 구성된 배포판
  • JVM이 자바 프로그램을 동작시킬 때 필요한 라이브러리 파일들과 기타 파일들을 가지고 있음
  • 자바 애플리케이션이 컴파일 및 빌드까지 다 된 다음 이를 사용할 곳에 주어져서 실행이 될 때 필요한 환경 요소
  • 자바로 작성한 프로그램을 실행시키기 위해서 필요

JVM (Java Virtual Machine)

  • 자바로 개발한 프로그램을 컴파일하여 만들어지는 바이트코드를 어떤 종류의 CPU에서도 실행시킬 수 있게 해주는 가상머신
  • '한번 작성하면 모든 곳에서 실행한다' = 'Write Once Run Anywhere' = 자바의 WORA 원칙
  • 주어진 코드를 그때 그때 기계어로 통번역해주는 방식을 사용 = JIT (Just In Time) 컴파일

기타 용어

  • 컴파일 : 코딩 끝낸 후 이걸 실행하거나 배포하기 전에 미리 번역해두는 작업
  • 컴파일 타임: 컴파일을 하는 시점
  • 런타임 : 컴파일 및 빌드까지 다 된 다음 이를 사용할 곳에 주어져서 실행이 되는 시점

참고

jdk 설치

  1. jdk 파일을 다운로드 받아서 설치하기
  2. homebrew 명령어를 사용하여 jdk 설치하기

1. jdk 파일을 다운로드 받아서 설치하기

위 페이지 중 하나를 들어가서 LTS 버전(2023.10.01 기준 Java 8, Java 11, Java 17, Java 21) 중 하나를 선택하고 아키텍쳐가 ARM64이고 파일 확장자가 .dmg인 파일을 다운받고 압축 해제 후 설치하면 된다.

LTS 버전은 무엇인가?

  • Long Term Support 버전
    • 단어 뜻대로 장기 지원되는 버전을 의미함
    • 기능 업데이트는 최소한으로 이루어지거나 아예 없는 반면 보안 업데이트의 지원 기간이 일반 버전보다 훨씬 김
    • 기업이나 기관에서 기능 업데이트로 인해 이용 중인 다른 소프트웨어가 영향을 받는 것을 피하기 위해 사용함
  • 참고: 나무위키(장기 지원 버전)

ARM64는 무엇인가?

  • CPU 아키텍처의 이름 중 하나

CPU 아키텍처 종류

.dmg는 무엇인가?

  • Disk Image 파일
    • Apple에서 개발판 파일 포맷
    • dmg 파일을 누르면 압축을 해제하는 것처럼 진행되고 보안프로그램 설치에 필요한 소스를 제공함
    • 파일이 안전한 파일인지 확인할 수 있는 장점이 있음
  • 출처: 나무위키(dmg)

2. homebrew 명령어를 사용하여 jdk 설치하기

homebrew 명령어를 사용하려면 homebrew가 먼저 깔려 있어야 한다. homebrew 공식 홈페이지에서 설치 방법을 보고 따라하면 쉽게 설치할 수 있다.

AdoptopenJDK 설치하기

brew tap adoptopenjdk/openjdk
brew search jdk
brew install --cask adptopenjdk (원하는 버전)
// ex) brew install --cask adoptopenjdk11

참고: [macOS] 맥에서 자바 버전 관리(brew)

Zulu JDK 설치하기

brew tap mdogan/zulu
brew search jdk
brew install zulu-jdk (원하는 버전)
// ex) brew install zulu-jdk11

참고: [Mac] JAVA 11(Zulu JDK11) 다운로드 및 설치

위에서 사용한 brew 명령어 설명

  • brew tap: 패키지 저장소 확인
  • brew tap [저장소태그]: 패키지 저장소 추가
  • brew search [프로그램명] : homebrew를 통해 설치 가능한 프로그램 찾기
  • brew install 패키명 : 커맨드 라인 프로그램 (c, java, python 등)
  • brew install cask ~ : GUI 프로그램 (Safari, Chrome, Word 등)

참고: homebrew 간단정리

3. jdk 환경변수 설정 방법

설치되었는지 확인 (버전 확인)

java --version

openjdk 11.0.20.1 2023-08-24 LTS
OpenJDK Runtime Environment Zulu11.66+19-CA (build 11.0.20.1+1-LTS)
OpenJDK 64-Bit Server VM Zulu11.66+19-CA (build 11.0.20.1+1-LTS, mixed mode)

환경변수 설정 (vscode가 설치되어 있어야 함)

  1. 터미널에 echo $0 입력
  2. zshbash 가 나올텐데 이는 터미널 이름임. 터미널에 code ~/.[터미널이름]rc 입력
    ex) code ~/.zshrc 입력
  3. 아래 코드를 마지막 줄에 추가하기
    export JAVA_HOME=$(/usr/libexec/java_home -v 11)
    export PATH=$PATH:$JAVA_HOME/bin

참고: 즐거운 자바 강좌 - 01. 자바(Java)언어의 특징과 JDK 및 개발환경 설치

4. java 버전 변경 방법

1. 현재 버전 확인

$ java --version

openjdk 11.0.20.1 2023-08-24 LTS
OpenJDK Runtime Environment Zulu11.66+19-CA (build 11.0.20.1+1-LTS)
OpenJDK 64-Bit Server VM Zulu11.66+19-CA (build 11.0.20.1+1-LTS, mixed mode)

2. 현재 로컬에 설치되어 있는 버전 확인

$ /usr/libexec/java_home -V

Matching Java Virtual Machines (2):
    17.0.8 (arm64) "Oracle Corporation" - "Java SE 17.0.8" /Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
    11.0.20.1 (arm64) "Azul Systems, Inc." - "Zulu 11.66.19" /Library/Java/JavaVirtualMachines/zulu-11.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home

3. 버전 변경

a. 위에서 환경변수 설정할 때 수정했던 파일 열기
- 터미널에 code ~/.[터미널이름]rc 입력
ex) code ~/.zshrc 입력

b. 아래 코드의 마지막 부분(버전에 해당하는 부분)을 원하는 버전으로 수정 후 저장

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

c. 터미널 끄고 다시 열기

4. 변경된 버전 확인

$ java -version

java version "17.0.8" 2023-07-18 LTS
Java(TM) SE Runtime Environment (build 17.0.8+9-LTS-211)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.8+9-LTS-211, mixed mode, sharing)
sukk@sukks-MacBook-Air ~ %
profile
공부 기록

0개의 댓글