글 목차
jdk 설치
- jdk 파일을 다운로드 받아서 설치하기
- homebrew 명령어를 사용하여 jdk 설치하기
java 환경변수 설정 및 버전 변경
- jdk 설치 후 환경변수 설정
- 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 다운로드 페이지 https://www.oracle.com/java/technologies/downloads/
- azul jdk 다운로드 페이지
https://www.azul.com/downloads/?package=jdk#zulu
위 페이지 중 하나를 들어가서 LTS 버전(2023.10.01 기준 Java 8, Java 11, Java 17, Java 21) 중 하나를 선택하고 아키텍쳐가 ARM64이고 파일 확장자가 .dmg인 파일을 다운받고 압축 해제 후 설치하면 된다.
LTS 버전은 무엇인가?
- Long Term Support 버전
- 단어 뜻대로 장기 지원되는 버전을 의미함
- 기능 업데이트는 최소한으로 이루어지거나 아예 없는 반면 보안 업데이트의 지원 기간이 일반 버전보다 훨씬 김
- 기업이나 기관에서 기능 업데이트로 인해 이용 중인 다른 소프트웨어가 영향을 받는 것을 피하기 위해 사용함
- 참고: 나무위키(장기 지원 버전)
ARM64는 무엇인가?
- CPU 아키텍처의 이름 중 하나
CPU 아키텍처 종류
- x86
- Intel 기반의 32bit CPU
- Windows, Linux, MacOS 지원
- x86_64 (AMD64)
- Intel 기반의 64bit CPU
- Windows, Linux, MacOS 지원
- x86과 호환됨
- ARM
- ARM 기반의 32bit CPU
- Linux, MacOS, Android, iOS 지원
- x86과 호환 안됨
- ARM64d
- ARM 기반의 64bit CPU
- Linux, MacOS, Android, iOS 지원
- 32bit ARM과 호환됨
- 참고
.dmg는 무엇인가?
- Disk Image 파일
- Apple에서 개발판 파일 포맷
- dmg 파일을 누르면 압축을 해제하는 것처럼 진행되고 보안프로그램 설치에 필요한 소스를 제공함
- 파일이 안전한 파일인지 확인할 수 있는 장점이 있음
- 출처: 나무위키(dmg)
homebrew 명령어를 사용하려면 homebrew가 먼저 깔려 있어야 한다. homebrew 공식 홈페이지에서 설치 방법을 보고 따라하면 쉽게 설치할 수 있다.
brew tap adoptopenjdk/openjdk
brew search jdk
brew install --cask adptopenjdk (원하는 버전)
// ex) brew install --cask adoptopenjdk11
참고: [macOS] 맥에서 자바 버전 관리(brew)
brew tap mdogan/zulu
brew search jdk
brew install zulu-jdk (원하는 버전)
// ex) brew install zulu-jdk11
참고: [Mac] JAVA 11(Zulu JDK11) 다운로드 및 설치
참고: homebrew 간단정리
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)
echo $0 입력zsh 나 bash 가 나올텐데 이는 터미널 이름임. 터미널에 code ~/.[터미널이름]rc 입력code ~/.zshrc 입력export JAVA_HOME=$(/usr/libexec/java_home -v 11)
export PATH=$PATH:$JAVA_HOME/bin참고: 즐거운 자바 강좌 - 01. 자바(Java)언어의 특징과 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)
$ /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
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. 터미널 끄고 다시 열기
$ 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 ~ %