티스토리 뷰
Mac에서의 Java 설치 및 여러 가지 Java버전을 관리하는 방법을 알아보자.
Java 설치의 일반적인 방법은 직접 다운로드하는 방법이 있지만, Mac에서는 Brew를 통해 손쉽게 설치가 가능하다. Java 외의 모든 프로그램을 Brew로 설치하면 관리가 쉬워진다.
1. Java 설치
# Homebrew 설치 및 업데이트
brew update
# adoptopenjdk/openjdk 추가
brew tap adoptopenjdk/openjdk
# jdk 찾기
brew search jdk
# 특정 버전 설치
brew install --cask adoptopenjdk8
brew install --cask adoptopenjdk11
# Java 설치위치 확인
/usr/libexec/java_home -V
# Java 버전 확인
java -version
Java 8, Java 11 각각 설치한 이유는 개발자가 개발 또는 운영하는 시스템에 따라 버전이 다르다. 수많은 버전 중에서도 왜 8, 11 선정한 이유는 LTS 버전이기 때문이다. 현재 Java LTS버전은 7, 8, 11, 17, 21이다. brew에서 지원하는 JDK17이 나오면 추가로 설치할 계획이다.
항상 신규 버전이 옮은 건 아니다, 안정화 버전을 주로 사용하고, 상황에 따라 알맞은 LTS 버전을 사용하는 걸 추천한다.
초기 LTS release는 3년 주기였으나, JDK17 이후 LTS release가 2년 주기로 전환되었다.
https://www.oracle.com/java/technologies/java-se-support-roadmap.html
2. Java 버전 관리
brew를 통해 8, 11 버전을 설치하였다. 기본적으로 여러 개를 설치하였으면 최신 버전을 기본값으로 한다. JAVA_HOME 명령어를 관리하여 직관적으로 수정할 수 있게 관리하자.
# 사용중인 shell 확인
echo $SHELL
# 환경변수 관리
# bash shell
vi ~/.bash_profile
# zsh shell
vi ~/.zshrc
# Java Paths
export JAVA_HOME_8=$(/usr/libexec/java_home -v1.8)
export JAVA_HOME_11=$(/usr/libexec/java_home -v11)
# Java 8
export JAVA_HOME=$JAVA_HOME_8
# Java 11
# export JAVA_HOME=$JAVA_HOME_11
# 변경사항 적용
# bash shell
source ~/.bash_profile
# zsh shell
source ~/.zshrc
변경사항 적용까지 끝났으면 다시 한번 Java 버전 조회 명령어로 정상적으로 반영되었는지 확인하면 된다.
# temurin Java 교체
java 버전 관리 포스팅 이후에 adoptopenjdk17을 기다리고 있었는데, 이클립스 재단에서 어답티움(Adoptium) 프로젝트를 진행하면서 adoptopenjdk에 대한 추가 업데이트를 진행하지 않는 다는 소식을 접하게 되었다.
adoptopenjdk을 사용중이라면, temurin으로 재설치를 권장한다. LTS 17버전도 추가로 설치 하게 되었다.
# adoptopenjdk/openjdk 제거
brew uninstall adoptopenjdk8
brew uninstall adoptopenjdk11
brew untap adoptopenjdk/openjdk
# 최신 버전
brew install --cask temurin
# 버전 관리
brew tap homebrew/cask-versions
# 특정 버전 설치
brew install --cask temurin8
brew install --cask temurin11
brew install --cask temurin17
# Java 설치위치 확인
/usr/libexec/java_home -V
# Java 버전 확인
java -version
'프로그래밍 > Etc' 카테고리의 다른 글
[Etc] Spring Framework & Spring Boot With Java Support (0) | 2023.06.09 |
---|---|
[Etc] Mac 한글파일명 자소 분리 (0) | 2022.11.05 |
[Etc] SSL connection error (0) | 2022.07.14 |
[Etc] Public IP 확인하는 2가지 방법 (0) | 2022.05.27 |
[Etc] Swagger java.lang.NumberFormatException: For input string: "" (0) | 2021.05.14 |
- 리액트 16
- 리눅스 명령어
- 이직
- javascript
- Maven
- effective java
- 자바
- 프로그래머스
- React
- 성능분석
- 경력관리
- Linux 명령어
- 소프트웨어공학
- 리액트
- sort algorithm
- 자바스크립트
- 오라클
- 프로그래머
- Eclipse
- 제주도 3박4일 일정
- 정렬 알고리즘
- SQL
- spring
- 개발환경
- 회고
- 제주도 여행
- Tomcat
- 오라클 내장 함수
- Collection
- Java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |