====== sdkman ====== * http://sdkman.io/ : 개발자용 애플리케이션, 플랫폼 설지 자동화 툴 * [[groovy:gvm|GVM Groovy Environment Manager]] sdkman으로 바뀌고, groovy 뿐만 아니라 애플리케이션 전반을 커버할 수 있게 된다. * Linux, Mac, Windows Powershell 등 지원. ===== 유사 애플리케이션 ===== * [[java:jabba|Jabba]] * [[java:jenv|jenv]] ===== 기본 명령 ===== * [[https://sdkman.io/usage|sdkman usage]] sdk list java # java 의 각 버전 목록 보여줌 sdk install java 8.0.212.hs-adpt # 특정 버전 Java 설치 sdk use scala 2.12.1 # 특정 버전 사용 sdk default scala 2.11.6 # 시스템 디폴트 지정 sdk current java # 현재 사용중인 버전 sdk upgrade springboot # 업그레이드 sdk upgrade # 모든 업그레이드 대상 목록 sdk selfupdate # sdkman 자체 업그레이드 sdk update # 패키지 정보 업데이트 ===== JDK 설치 ===== * https://sdkman.io/jdks # 전체 목록 sdk ls java # Amazon Corretto sdk install java x.y.z-amzn # GraalVM sdk install java x.y.z-grl # Liberica sdk install java x.y.z-librca # AdoptOpenJDK sdk install java x.y.z-adpt # OpenJDK sdk install java x.y.z-open # SapMachine sdk install java x.y.z-sapmchn # Zulu sdk install java x.y.z-zulu ===== sdkman API ===== * sdkman 은 자체 API 서버에서 최신 각 candidate의 버전 목록을 읽어온다. * 해당 API 서버 주소는 ''~/.sdkman/bin/sdkman-init.sh'' 에서 ''SDKMAN_CANDIDATES_API''값으로 확인 가능하다. echo $SDKMAN_CANDIDATES_API > https://api.sdkman.io/2 * ''https://api.sdkman.io/2/candidates///versions/all'' * linux용 java 버전 목록은 다음과 같이 읽을 수 있다. echo $SDKMAN_PLATFORM > linux 는 linux64 curl --silent "$SDKMAN_CANDIDATES_API/candidates/java/$SDKMAN_PLATFORM/versions/all" \ | sed 's/,/\n/g' ===== 설치된 버전 목록 확인 script ===== * ''SDKMAN_CANDIDATES_DIR'' 환경변수를 통해 확인할 수 있다. * ''ls "$SDKMAN_CANDIDATES_DIR/" | grep -v "current"'' ls "$SDKMAN_CANDIDATES_DIR/java" | grep -v "current" 17.0.1-tem 21.3.0.r17-grl ===== 참조 ===== * [[https://www.grailbox.com/2021/04/switch-among-java-versions-fzf-and-sdkman/|Switch Among Java Versions: FZF and SDKMAN! – Grailbox]] * [[https://gist.github.com/inoperable/8d29907bd58d1298207b3a70960ec03a|sdkman to fzf quick and dirty selection of installed JDKS with fzf in zsh (should work also in bash, i guess)]]