SDK! 으로 Java 버전 관리하기
SDKMAN!
SDMMAN!
은 대부분의 유닉스 기반 시스템에서 여러가지 SDK(Software Development Kits)의 병렬 버전을 관리하기 위한 도구입니다.
SDKMAN!
을 이용해서 여러 Java 버전을 관리할 수 있는 방법에 대해 알아보겠습니다.
Installation (macos 기준)
터미널 프로그램을 실행한 후 아래 명령을 입력합니다.
$ curl -s "https://get.sdkman.io" | bash
설치 완료되면 터미널에 아래 명령을 실행합니다.
저는
.zshrc
,.bash_profile
같은 파일에 추가해서 사용하고 있습니다.
$ source "$HOME/.sdkman/bin/sdkman-init.sh"
마지막으로, 설치된 SDKMAN!
의 버전을 확인하여 성공적으로 설치가 완료됐는지 확인합니다.
$ sdk version
SDKMAN 5.7.2+323
Uninstallation
SDKMAN! 삭제는 설치된 SDKMAN!을 백업합니다.
설치된 경로는 ~/.sdkman
입니다.
그리고, rm
명령으로 해당 폴더를 삭제하면 됩니다.
$ rm -rf ~/.sdkman
마지막으로 .bashrc
, .bash_profile
, .zshrc
등에 설정한 내용을 삭제합니다.
Java 설치하기
# 설치할 Java 버전 조회
$ sdk list java
================================================================================
Available Java Versions
================================================================================
12.ea.20-open
11.0.1-zulu
11.0.1-open
10.0.2-zulu
10.0.2-open
> + 10.0.1-zulu
9.0.7-zulu
9.0.4-open
8.0.192-zulu
8.0.191-oracle
7.0.181-zulu
1.0.0-rc-10-grl
1.0.0-rc-9-grl
1.0.0-rc-8-grl
================================================================================
+ - local version
* - installed
> - currently in use
================================================================================
# 8.0.192-zulu 버전 설치
$ sdk install java 8.0.192-zulu
# 최신 버전의 Java를 설치하는 경우 설치 명령에 버전을 입력하지 않으면 됩니다.
# sdk install java
Downloading: java 8.0.192-zulu
In progress...
################################ 63.9%
.. 생략 ..
Done installing!
Java 설치가 완료되면 방금 설치한 버전을 기본 값으로 설정할지 묻는 메시지가 나타납니다. 그러면 ‘yes’ 를 선택해서 입력하거나 ‘엔터키’를 입력하면 됩니다.
설치된 Java 위치
~/.sdkman/candidates/java/
설치된 Java 버전 삭제
설치된 Java 버전을 아래 명령을 실행하여 삭제할 수 있습니다.
$ sdk uninstall java 8.0.192-zulu
설치 가능한 Java 버전 조회
설치 가능한 Java 버전 목록을 조회하려면, 터미널에서 아래 명령을 입력하고 실행합니다.
$ sdk list java
================================================================================
Available Java Versions
================================================================================
13.ea.02-open
12.ea.26-open
* 11.0.1-zulu
11.0.1-open
10.0.2-zulu
10.0.2-open
9.0.7-zulu
9.0.4-open
> * 8.0.192-zulu
8.0.191-oracle
7.0.181-zulu
1.0.0-rc-10-grl
1.0.0-rc-9-grl
1.0.0-rc-8-grl
================================================================================
+ - local version
* - installed
> - currently in use
================================================================================
저의 macOS에는 총 2개의 Java 버전(8.0.192-zulu, 11.0.1-zulu)이 설치되어 있고, 현재 사용하고 있는 버전은 8.0.192-zulu
버전이 되겠습니다.
설치된 Java 버전 변경
현재 사용하고 있는 버전을 11.0.1-zulu
버전으로 변경해보겠습니다.
$ sdk use java 11.0.1-zulu
# 현재 사용 버전 확인
$ sdk current
Using:
java: 11.0.1-zulu
Java 버전이8.0.192-zulu
에서 11.0.1-zulu
로 변경된 것을 확인할 수 있습니다.
하지만, 중요한 점은 현재 사용하고 있는 쉘(shell)의 Java 버전만 변경됐다는 것입니다.
모든 쉘(shell)에 동일한 버전으로 변경되길 원한다면 default
명령을 사용해야 합니다.
저의 경우 보통은 Java 8.0.x 버전을 기본으로 사용하다가, 간단한 코드 작성하고 결과 확인하기위해
jshell
을 실행시키기 위해11.0.x
버전으로 변경해서 사용하고 있습니다.
Default 버전 지정
설치된 Java 버전 중 11.0.1-zulu
를 default 버전으로 변경합니다.
$ sdk default java 11.0.1-zulu
모든 쉘(shell)에서 11.0.1-zulu
버전을 사용할 수 있습니다.
$ sdk list java
================================================================================
Available Java Versions
================================================================================
13.ea.02-open
12.ea.26-open
> * 11.0.1-zulu
11.0.1-open
10.0.2-zulu
10.0.2-open
9.0.7-zulu
9.0.4-open
* 8.0.192-zulu
8.0.191-oracle
7.0.181-zulu
1.0.0-rc-10-grl
1.0.0-rc-9-grl
1.0.0-rc-8-grl
================================================================================
+ - local version
* - installed
> - currently in use
================================================================================
버전 업그레이드
Java 버전의 현재 최신 정보를 확인하고, 새로운 버전이 있을 경우 업그레이드 할 수 있습니다. 저의 경우 설치된 두개의 버전보다 11.0.1-open
버전이 최신이라는 것을 알 수 있습니다.
최신 버전으로 업그레이드하고 default 버전으로 설정할 것인지 물어보는 대화창에 Y
를 입력합니다.
$ sdk upgrade java
Upgrade:
java (11.0.1-zulu, 8.0.192-zulu < 11.0.1-open)
Upgrade candidate(s) and set latest version(s) as default? (Y/n):
최신 버전으로 업그레이드 완료되고 default 버전으로 설정됐는지 확인할 수 있습니다.
$ sdk list java
================================================================================
Available Java Versions
================================================================================
13.ea.02-open
12.ea.26-open
* 11.0.1-zulu
> * 11.0.1-open
10.0.2-zulu
10.0.2-open
9.0.7-zulu
9.0.4-open
* 8.0.192-zulu
8.0.191-oracle
7.0.181-zulu
1.0.0-rc-10-grl
1.0.0-rc-9-grl
1.0.0-rc-8-grl
================================================================================
+ - local version
* - installed
> - currently in use
================================================================================
정리
지금까지 SDKMAN!
설치부터 Java 설치 그리고 버전 관리를 위한 기본 사용법을 정리해봤습니다. 파일을 다운로드 받아 설치하고, 환경변수를 설정하던 방식보다 훨씬 간단하게 Java 버전을 관리할 수 있어 테스트 환경을 구성하거나 테스트 코드를 작성할 때 유용하게 활용할 수 있을 거라고 생각합니다.
jenv 를 사용해서 Java 버전을 관리할 수도 있습니다.
댓글남기기