sdkman 자바 개발환경 관리툴

  • 문서 생성일: 2020-03-21 08:54:32 +0900 KST
  • sdkman 자바 개발환경 관리툴

    SDKMAN!은 자바 관련 개발 환경을 관리하는 툴입니다. SDkMAN!을 사용하면 자바 관련 여러 개발 툴 설치, 버전관리 및 업그레이드가 매우 편리합니다. SDKMAN은 Java를 비롯한 자바 툴(Maven, Ant, sbt, Spark, Spring Boot) 총 28개를 지원합니다. (2020.03.23일 기준)

    SDKMAN! 설치, 설정 및 활용을 다루는 이 문서는 다음과 같은 목차로 진행됩니다.

    SDKMAN! 설치

    SDkMAN! 설치 환경 준비

    SDkMAN!은 기반 시스템으로 유닉스 스타일을 사용합니다. 따라서 SDkMAN!을 설치하고 운영하기 위해서는 유닉스 기반 환경이 필요합니다. 리눅스와 Mac OS X는 SDkMAN! 설치/사용을 위해서 별도 분비가 필요 없습니다. Windows 환경에서는 유닉스 스타일 기반 시스템을 준비해야 합니다. Windows 10 이상을 사용하신다면 Windows SubSystem으로 리눅스를 구성하는 방법을 추천합니다. Window 7 등을 사용하신다면 Cgywin과 윈도우를 위한 POSIX 소프트웨어를 설치해야 합니다.

    Windows 10에서 Windows SubSystem을 새로 구성해야 한다면 다음 문서를 참조하여 준비하시기 바랍니다.

    SDkMAN! 설치

    SDkMAN!을 설치하고자 한다면 사용하는 운영체제의 터미널에서 다음 명령을 실행합니다.

    curl -s "https://get.sdkman.io" | bash
    

    아래 [접기/펼치기]를 클릭하면 SDkMAN! 설치 명령 전체 출력 로그를 확인할 수 있습니다.

    [접기/펼치기] SDkMAN! 설치 명령 전체 출력 로그

    zsh 사용자는 $HOME/.zshrc 파일을 그리고 bash 사용자는 $HOME/.bash_profile 파일 마지막에 다음 코드를 추가합니다.

    export SDKMAN_DIR="$HOME/.sdkman"
    [[ -s "$SDKMAN_DIR/bin/sdkman-init.sh" ]] && source "$SDKMAN_DIR/bin/sdkman-init.sh"
    

    그리고 bash를 사용한다면 다음 명령을 실행합니다.

    source $HOME/.zshrc
    

    zsh를 사용한다면 다음 명령을 실행합니다.

    source $HOME/.zshrc
    

    sdk version 명령을

    설치된 SDkMAN! 제거

    설치된 SDkMAN!을 제거하고자 한다면 사용하는 운영체제의 터미널에서 다음 명령을 실행합니다.

    rm -rf ~/.sdkman
    

    SDKMAN!을 활용한 개발툴 관리

    주요 자바 툴을 설치하고 관리하는 절차를 소개합니다.

    Java 설치 및 버전 관리

    SDKMAN!을 이용한 Java 설치 및 관리 방법 소개를 다음과 같은 순서로 진행하겠습니다.

    1. 지원 Java 목록 조회
    2. Java 14 버전 설치
    3. Java 11 버전 설치
    4. Java 14 버전 기본 설정
    5. Java 14 버전 제거

    지원 Java 목록 조회

    다음 명령을 입력하여 SDKMAN!이 현재 지원하는 Java 목록을 조회합니다.

    sdk list java
    

    아래 [접기/펼치기]를 클릭하면 위 명령의 전체 출력 결과를 확인할 수 있습니다.

    [접기/펼치기] SDKMAN! 명령 전체 출력 로그

    OpenJDK 14 버전 설치

    다음 명령을 입력하여 SDKMAN!으로 14.0.0-open를 설치합니다.

    sdk instsall java 14.0.0-open
    

    아래 [접기/펼치기]를 클릭하면 위 명령의 전체 출력 결과를 확인할 수 있습니다.

    [접기/펼치기] SDKMAN! 명령 전체 출력 로그

    다음 명령을 입력하여 14.0.0-open이 설치된 상태를 확인합니다.

    java --version
    

    아래와 같이 출력된다면 설치가 완료됐다고 판단할 수 있습니다.

     $ java --version
    openjdk 14 2020-03-17
    OpenJDK Runtime Environment (build 14+36-1461)
    OpenJDK 64-Bit Server VM (build 14+36-1461, mixed mode, sharing)
     $
    

    다음 명령을 입력하여 SDKMAN!으로 설치된 자바 버전과 활성화된 상태를 확인할 수 있습니다.

    sdk list java
    

    다음 출력에서 설치 버전은 installed로 설치되고 활성화된 버전은 >>>으로 표현됩니다. 문서 가독성을 고려하여 아래 출력에서 일부분 출력을 제거했습니다.

     $ sdk list java
    ================================================================================
    Available Java Versions
    ================================================================================
     Vendor        | Use | Version      | Dist    | Status     | Identifier
    --------------------------------------------------------------------------------
     AdoptOpenJDK  |     | 14.0.0.j9    | adpt    |            | 14.0.0.j9-adpt
                   |     | 14.0.0.hs    | adpt    |            | 14.0.0.hs-adpt
                   |     | 13.0.2.j9    | adpt    |            | 13.0.2.j9-adpt
                   |     | 13.0.2.hs    | adpt    |            | 13.0.2.hs-adpt
                   |     | 12.0.2.j9    | adpt    |            | 12.0.2.j9-adpt
                   |     | 12.0.2.hs    | adpt    |            | 12.0.2.hs-adpt
                   |     | 11.0.6.j9    | adpt    |            | 11.0.6.j9-adpt
                   |     | 11.0.6.hs    | adpt    |            | 11.0.6.hs-adpt
                   |     | 8.0.242.j9   | adpt    |            | 8.0.242.j9-adpt
                   |     | 8.0.242.hs   | adpt    |            | 8.0.242.hs-adpt
     Java.net      |     | 15.ea.15     | open    |            | 15.ea.15-open
                   | >>> | 14.0.0       | open    | installed  | 14.0.0-open
                   |     | 13.0.2       | open    |            | 13.0.2-open
                   |     | 12.0.2       | open    |            | 12.0.2-open
                   |     | 11.0.2       | open    |            | 11.0.2-open
                   |     | 10.0.2       | open    |            | 10.0.2-open
                   |     | 9.0.4        | open    |            | 9.0.4-open
    ================================================================================
    Use the Identifier for installation:
    
        $ sdk install java 11.0.3.hs-adpt
    ================================================================================
     $
    

    OpenJDK 11 버전 설치

    이제 OpenJDK 11 버전을 설치해 보겠습니다. 다음 명령으로 OpenJDK 11을 설치합니다.

    sdk install java 11.0.2-open
    

    위 명령이 실행되면 Java 상태는 다음과 깉이 변경됩니다. 기본 설치 버전은 Java 11으로 변경됩니다.

     $ java --version
    openjdk 11.0.2 2019-01-15
    OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
    OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)
     $ sdk list java
    ================================================================================
    Available Java Versions
    ================================================================================
     Vendor        | Use | Version      | Dist    | Status     | Identifier
    --------------------------------------------------------------------------------
     GraalVM       |     | 20.0.0.r11   | grl     |            | 20.0.0.r11-grl
                   |     | 20.0.0.r8    | grl     |            | 20.0.0.r8-grl
                   |     | 19.3.1.r11   | grl     |            | 19.3.1.r11-grl
                   |     | 19.3.1.r8    | grl     |            | 19.3.1.r8-grl
                   |     | 19.3.0.r11   | grl     |            | 19.3.0.r11-grl
                   |     | 19.3.0.r8    | grl     |            | 19.3.0.r8-grl
                   |     | 19.3.0.2.r11 | grl     |            | 19.3.0.2.r11-grl
                   |     | 19.3.0.2.r8  | grl     |            | 19.3.0.2.r8-grl
                   |     | 19.2.1       | grl     |            | 19.2.1-grl
                   |     | 19.1.1       | grl     |            | 19.1.1-grl
                   |     | 19.0.2       | grl     |            | 19.0.2-grl
                   |     | 1.0.0        | grl     |            | 1.0.0-rc-16-grl
     Java.net      |     | 15.ea.15     | open    |            | 15.ea.15-open
                   |     | 14.0.0       | open    | installed  | 14.0.0-open
                   |     | 13.0.2       | open    |            | 13.0.2-open
                   |     | 12.0.2       | open    |            | 12.0.2-open
                   | >>> | 11.0.2       | open    | installed  | 11.0.2-open
                   |     | 10.0.2       | open    |            | 10.0.2-open
                   |     | 9.0.4        | open    |            | 9.0.4-open
     SAP           |     | 13.0.2       | sapmchn |            | 13.0.2-sapmchn
                   |     | 12.0.2       | sapmchn |            | 12.0.2-sapmchn
                   |     | 11.0.6       | sapmchn |            | 11.0.6-sapmchn
    ================================================================================
    Use the Identifier for installation:
    
        $ sdk install java 11.0.3.hs-adpt
    ================================================================================
     $
    

    Java 14 버전 활성화

    현재 Java 11이 활성화된 상태입니다. Java 14를 활성화 시키기 위해서는 다음 명령을 실행합니다.

    sdk use java 14.0.0-open
    

    위 명령이 실행되면 Java 상태는 다음과 깉이 변경됩니다. 기본 설치 버전은 Java 14으로 변경됩니다.

     $ java --version
    openjdk 14 2020-03-17
    OpenJDK Runtime Environment (build 14+36-1461)
    OpenJDK 64-Bit Server VM (build 14+36-1461, mixed mode, sharing)                                                                                                 ✔  5027  14:06:13
     $ sdk list java
    ================================================================================
    Available Java Versions
    ================================================================================
     Vendor        | Use | Version      | Dist    | Status     | Identifier
    --------------------------------------------------------------------------------
     GraalVM       |     | 20.0.0.r11   | grl     |            | 20.0.0.r11-grl
                   |     | 20.0.0.r8    | grl     |            | 20.0.0.r8-grl
                   |     | 19.3.1.r11   | grl     |            | 19.3.1.r11-grl
                   |     | 19.3.1.r8    | grl     |            | 19.3.1.r8-grl
                   |     | 19.3.0.r11   | grl     |            | 19.3.0.r11-grl
                   |     | 19.3.0.r8    | grl     |            | 19.3.0.r8-grl
                   |     | 19.3.0.2.r11 | grl     |            | 19.3.0.2.r11-grl
                   |     | 19.3.0.2.r8  | grl     |            | 19.3.0.2.r8-grl
                   |     | 19.2.1       | grl     |            | 19.2.1-grl
                   |     | 19.1.1       | grl     |            | 19.1.1-grl
                   |     | 19.0.2       | grl     |            | 19.0.2-grl
                   |     | 1.0.0        | grl     |            | 1.0.0-rc-16-grl
     Java.net      |     | 15.ea.15     | open    |            | 15.ea.15-open
                   | >>> | 14.0.0       | open    | installed  | 14.0.0-open
                   |     | 13.0.2       | open    |            | 13.0.2-open
                   |     | 12.0.2       | open    |            | 12.0.2-open
                   |     | 11.0.2       | open    | installed  | 11.0.2-open
                   |     | 10.0.2       | open    |            | 10.0.2-open
                   |     | 9.0.4        | open    |            | 9.0.4-open
    ================================================================================
    Use the Identifier for installation:
    
        $ sdk install java 11.0.3.hs-adpt
    ================================================================================
     $                                                                                                 ✔  5028  14:06:18
    

    Java 14 버전 업데이트

    다음 명령으로 현재 활성된 14.0.0-open를 최신 버전으로 업데이트 합니다.

    sdk update java 14.0.0-open
    

    Java 11 버전 제거

    SDKMAN!으로 설치한 11.0.2-open를 다음 명령으로 제거합니다.

    sdk uninstall java 11.0.2-open
    

    위 명령이 실행되면 Java 상태는 다음과 깉이 변경됩니다. Java 11은 설치되지 않는 상태로 표시됩니다.

     $ sdk list java
    ================================================================================
    Available Java Versions
    ================================================================================
     Vendor        | Use | Version      | Dist    | Status     | Identifier
    --------------------------------------------------------------------------------
     GraalVM       |     | 20.0.0.r11   | grl     |            | 20.0.0.r11-grl
                   |     | 20.0.0.r8    | grl     |            | 20.0.0.r8-grl
                   |     | 19.3.1.r11   | grl     |            | 19.3.1.r11-grl
                   |     | 19.3.1.r8    | grl     |            | 19.3.1.r8-grl
                   |     | 19.3.0.r11   | grl     |            | 19.3.0.r11-grl
                   |     | 19.3.0.r8    | grl     |            | 19.3.0.r8-grl
                   |     | 19.3.0.2.r11 | grl     |            | 19.3.0.2.r11-grl
                   |     | 19.3.0.2.r8  | grl     |            | 19.3.0.2.r8-grl
                   |     | 19.2.1       | grl     |            | 19.2.1-grl
                   |     | 19.1.1       | grl     |            | 19.1.1-grl
                   |     | 19.0.2       | grl     |            | 19.0.2-grl
                   |     | 1.0.0        | grl     |            | 1.0.0-rc-16-grl
     Java.net      |     | 15.ea.15     | open    |            | 15.ea.15-open
                   | >>> | 14.0.0       | open    | installed  | 14.0.0-open
                   |     | 13.0.2       | open    |            | 13.0.2-open
                   |     | 12.0.2       | open    |            | 12.0.2-open
                   |     | 11.0.2       | open    |            | 11.0.2-open
                   |     | 10.0.2       | open    |            | 10.0.2-open
                   |     | 9.0.4        | open    |            | 9.0.4-open
    ================================================================================
    Use the Identifier for installation:
    
        $ sdk install java 11.0.3.hs-adpt
    ================================================================================
     $                                                                                                 
    

    Maven 설치

    SDKMAN!으로 Maven을 설치하는 과정을 소개합니다. Maven은 대표적인 자바 플젝젝트 빌드 툴입니다.

    다음 명령으로 SDKMAN!이 지원하는 Maven 목록을 확인합니다.

    sdk list maven
    

    위 명령의 전체 출력 결과는 다음과 같습니다.

     $ sdk list maven
    ================================================================================
    Available Maven Versions
    ================================================================================
         3.6.3
         3.6.2
         3.6.1
         3.6.0
         3.5.4
         3.5.3
         3.5.2
         3.5.0
         3.3.9
    ================================================================================
    + - local version
    * - installed
    > - currently in use
    ================================================================================
    $ 

    Maven 3.6.3 버전을 다음 명령으로 설치합니다.

    sdk install maven 3.6.3
    

    위 명령이 실행되어 설치되면 maven은 다음 명령으로 확인할 수 있습니다.

     $ mvn --version
    Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
    Maven home: /Users/taewan/.sdkman/candidates/maven/current
    Java version: 14, vendor: Oracle Corporation, runtime: /Users/taewan/.sdkman/candidates/java/14.0.0-open
    Default locale: ko_KR, platform encoding: UTF-8
    OS name: "mac os x", version: "10.15.1", arch: "x86_64", family: "mac"                                                                                                 ✔  5035  14:29:32
     $ sdk list maven
    ================================================================================
    Available Maven Versions
    ================================================================================
     > * 3.6.3
         3.6.2
         3.6.1
         3.6.0
         3.5.4
         3.5.3
         3.5.2
         3.5.0
         3.3.9
    ================================================================================
    + - local version
    * - installed
    > - currently in use
    ================================================================================
     $
    

    SBT 설치

    SDKMAN!으로 SBT를 설치하는 과정을 소개합니다. SBT는 Scala 프로젝트 빌드 툴입니다.

    다음 명령으로 SDKMAN!이 지원하는 SBT 목록을 확인합니다.

    sdk list maven
    

    위 명령의 전체 출력 결과는 다음과 같습니다.

     $ sdk list sbt
    ================================================================================
    Available Sbt Versions
    ================================================================================
         1.3.8               1.2.3               0.13.18
         1.3.7               1.2.1               0.13.15
         1.3.6               1.2.0               0.13.13
         1.3.5               1.1.6               0.13.12
         1.3.4               1.1.5               0.13.11
         1.3.3               1.1.4               0.13.9
         1.3.2               1.1.3
         1.3.1               1.1.2
         1.3.0               1.1.1
         1.3.0-RC1           1.1.0
         1.2.8               1.0.4
         1.2.7               1.0.3
         1.2.6               1.0.2
         1.2.5               1.0.1
         1.2.4               1.0.0
    ================================================================================
    + - local version
    * - installed
    > - currently in use
    ================================================================================
    $ 

    Maven 3.6.3 버전을 다음 명령으로 설치합니다.

    sdk install sbt 0.13.9
    

    위 명령이 실행되어 설치되면 sbt는 다음 명령으로 확인할 수 있습니다.

     $ sdk version
    SDKMAN 5.7.4+362
     $ sdk list sbt
    ================================================================================
    Available Sbt Versions
    ================================================================================
         1.3.8               1.2.3               0.13.18
         1.3.7               1.2.1               0.13.15
         1.3.6               1.2.0               0.13.13
         1.3.5               1.1.6               0.13.12
         1.3.4               1.1.5               0.13.11
         1.3.3               1.1.4           > * 0.13.9
         1.3.2               1.1.3
         1.3.1               1.1.2
         1.3.0               1.1.1
         1.3.0-RC1           1.1.0
         1.2.8               1.0.4
         1.2.7               1.0.3
         1.2.6               1.0.2
         1.2.5               1.0.1
         1.2.4               1.0.0
    ================================================================================
    + - local version
    * - installed
    > - currently in use
    ================================================================================
     $
    
    김태완 avatar
  • 작성자: 김태완
  • 사랑하는 민수와 데이터 관리, 데이터 분석 & 클라우드에 집중하고 있습니다.
  • E-mail: taewanme@gmail.com
  • Disclaimer
    이 저작물은 Oracle과 관계없이 개인으로서 개인의 시간을 할애하여 작성된 글 입니다. 본 글의 내용, 입장, 예측은 Oracle을 공식적으로 절대 대변하지 않습니다.