회사 입사 후 줄곧~ 우분투를 사용해왔으나
이제 아이폰 앱 빌드도 해야해서 아예 회사 컴퓨터를 맥북으로 갈아타게 되었다.
그에 따라 또 이것 저것 설정중!
가장 기본이 되는 자바 설치부터 기록해본다.
JAVA 설치
구글링하면 가장 많이 나오는 정보는 brew 로 설치하는 adoptopenjdk 인데,
현재는 deprecated 되었다(2021-08-01)
아래 공식 github 참조
https://github.com/AdoptOpenJDK/homebrew-openjdk
따라서 대체로 사용가능한 게 temurin 이다.
아래처럼 할 경우 가장 최신의 LTS 버전이 다운로드 되고 현재 기준(2023.01)으로는 jdk19 가 설치된다!
brew install --cask temurin
특정 버전이 필요할 경우 아래처럼 지정해서 다운로드 할 수 있고,
# 특정 버전을 설치하기 위해 설정
brew tap homebrew/cask-versions
# 특정 java version 설치
brew install --cask temurin8
brew install --cask temurin11
brew install --cask temurin17
아래 사이트에서 직접 다운로드 할 수도 있다.
https://adoptium.net/temurin/releases/
아래 명령어를 통해 정상적으로 설치됬는지 확인해보자.
/usr/libexec/java_home -V
아래 처럼 설치된 자바 버전 리스트를 확인할 수 있다.
여기까지 했다면, 이제 여러개 버전을 쉽게 변경할 수 있도록 해보자.
JAVA Version 여러개 관리하기
jenv 를 설치한다.
jenv 란 JAVA_HOME을 쉽게 관리할 수 있도록 해주는 툴이다. 상세 페이지 참고( https://www.jenv.be/ )
brew install jenv
설치후 jenv의 path를 설정해주어야 한다.
# Bash인 경우
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(jenv init -)"' >> ~/.bash_profile
source ~/.bash_profile
# zsh인 경우
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(jenv init -)"' >> ~/.zshrc
source ~/.zshrc
그리고 위에서 조회했던 java home 경로룰 모두 jenv에 추가해준다.
jenv add /Library/Java/JavaVirtualMachines/temurin-11.jdk/Contents/Home
jenv add /Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home
jenv add /Library/Java/JavaVirtualMachines/temurin-19.jdk/Contents/Home
jenv에 설정된 버전을 확인해보면, 정상적으로 등록된 것을 확인할 수 있다.
jenv versions
위 사진 처럼 여러개 버전이 나오는데 11.0 , 11.0.17, temurin64-11.0.17 이렇게 3가지는 모두 자바버전 11로 변경된다.
즉 동일한 동작임!!
java 버전을 바꿀때에는
3가지로 선택해서 버전을 지정할 수 있다.
global인 경우 전체 자바버전 변경
local인 경우 해당 폴더에서만 자바버전 변경
shell인 경우 해당 shell 에서만 자바버전 변경
일반적으로 global로 변경해서 지정해서 사용하는 것이 편하다.
상황에 따라 local과 함께 쓰면 좋을듯!
jenv global 19.0
끝! 정상적으로 자바 버전이 변경된 걸 확인할 수 있다.
'Backend > Java' 카테고리의 다른 글
멀티쓰레드 프로그램이 뭘까? with 자바 동기화(monitor) (0) | 2023.02.11 |
---|---|
[Java8to16] 자바 람다 표현식 Lambda Expression (0) | 2022.06.03 |
RESTFul 하다는 건 뭘까? (0) | 2022.04.05 |
전략 패턴(Strategy Pattern) 예제 코드로 이해하기 (0) | 2022.04.04 |
파사드 패턴(Facade Pattern) 예제 코드로 이해하기 (0) | 2022.04.03 |