SDKMAN! é uma ferramenta para gerenciar várias versões de kits de desenvolvimento de software no macOS, Linux, WLS, Cygwin, Solaris e FreeBSD. Ele pode instalar e gerenciar Java, Groovy, Scala, Kotlin, Ceylon, Ant, Gradle e muitos mais.
A ferramenta foi inspirada em RVM e rbenv, e requer apenas curl
e zip
/unzip
para funcionar em seu sistema, sendo escrita em Bash (não se preocupe, ela também funciona com Zsh).
Este artigo mostra como instalar o Java usando SDKMAN! (usando seu instalador ou offline usando seus próprios binários Java) e como gerenciar e usar várias versões Java (facilmente configurando uma versão Java como padrão, incluindo a configuração da variável de ambiente JAVA \ _HOME ou alternando versões Java temporariamente para o terminal atual sessão ou apenas para um determinado diretório).
Para começar, instale o SDKMAN! interface de linha de comando.
Agora esse SDKMAN! está instalado, vamos colocá-lo em uso. Use este comando para listar todas as versões candidatas de Java:
sdk list java
Isso lista AdoptOpenJDK e as versões que você pode instalar, Amazon Java, Azul Zulu OpenJDK, Java.net etc.
Este é um trecho (a saída é muito grande) do que você veria ao usar o comando "list java":
$ sdk list java
..............................................................
Available Java Versions
==============================================================
Vendor |Use| Version | Dist| Status | Identifier
--------------------------------------------------------------
AdoptOpenJDK| | 14.0.2.j9 | adpt| installed| 14.0.2.j9-adpt
| | 14.0.2.hs | adpt| | 14.0.2.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
| | 11.0.8.hs | adpt| installed| 11.0.8.hs-adpt
| | 8.0.262.j9| adpt| | 8.0.262.j9-adpt
..............................................................
Azul Zulu | | 14.0.2 | zulu| | 14.0.2-zulu
| | 13.0.4 | zulu| | 13.0.4-zulu
| | 13.0.3.fx | zulu| | 13.0.3.fx-zulu
| | 12.0.2 | zulu| | 12.0.2-zulu
| | 11.0.8 | zulu| | 11.0.8-zulu
..............................................................
Java.net | | 16.ea.6 | open| | 16.ea.6-open
| | 15.ea.32 | open| | 15.ea.32-open
| | 14.0.2 | open| | 14.0.2-open
| | 13.0.2 | open| | 13.0.2-open
| | 12.0.2 | open| | 12.0.2-open
| | 11.0.7 | open| | 11.0.7-open
| | 10.0.2 | open| | 10.0.2-open
| | 9.0.4 | open| | 9.0.4-open
| | 8.0.252 | open| | 8.0.252-open
.............................................................
Preste atenção na coluna Identificador. Esse é o nome do pacote que você precisa usar para instalar uma versão Java.
O comando que você pode usar para instalar uma versão Java é:
sdk install java IDENTIFIER
Substitua IDENTIFIER
pelo identificador de versão Java, conforme visto na saída do comando sdk list java
.
Por exemplo, para instalar o AdoptOpenJDK versão 11.0.8.hs, o comando de instalação é:
sdk install java 11.0.8.hs-adpt
SDKMAN! também pode instalar uma versão local do Java, como esta:
sdk install java [UNIQUE-IDENTIFIER]/caminho/para/o/Java
Por exemplo, baixe o Oracle Java 14 .tar.gz mais recente (se você não usar nosso instalador Oracle Java), extraia-o e use SDKMAN! para instalá-lo usando:
sdk install java 14.0.2-oracle ~/Downloads/jdk-14.0.2
Existem 3 maneiras de gerenciar versões Java usando SDKMAN!:
Para definir uma das versões Java instaladas usando SDKMAN! (não importa se instalado usando seu instalador integrado ou de um diretório local) como a versão Java padrão, use:
sdk default java IDENTIFIER
Substitua IDENTIFIER
pelo identificador de versão Java, conforme visto na saída do comando sdk list java.
Por exemplo, para tornar o AdoptOpenJDK versão 11.0.8.hs a versão Java padrão do sistema, use:
sdk default java 11.0.8.hs-adpt
Isso também define a variável de ambiente JAVA_HOME
para ~/.sdkman/candidate/java/current
.
sdk use java IDENTIFIER
Substitua IDENTIFIER
pelo identificador de versão Java, conforme visto na saída do comando sdk list java.
Por exemplo, defina o 14.0.2-oracle Java instalado localmente como a versão Java para a sessão de terminal atual:
sdk use java 14.0.2-oracle
Execute-o no diretório para o qual deseja usar uma versão Java personalizada:
sdk env init
Um arquivo chamado .sdkmanrc
agora foi gerado neste diretório. Abra-o e altere o valor de java = para o identificador de versão Java que deseja usar, por exemplo, 11.0.8.hs-adpt
para AdoptOpenJDK 11.0.8.
Agora execute sdk env
neste diretório para ativar a versão Java que você configurou no arquivo .sdkmanrc
ou edite o arquivo de configuração do SDKMAN! (~/.sdkman/etc/config
) e defina sdkman_auto_env = true
para que as versões do SDK sejam trocadas automaticamente quando você cd para um diretório.
Não importa como você está usando uma versão Java por meio do SDKMAN!, você pode verificar qual versão Java está em uso atualmente (conforme definido pelo SDKMAN) usando:
sdk current java
Você também pode consultar o Java diretamente sobre a versão atual em uso:
java -version
javac -version
Esse post foi traduzido do site LinuxUprising.com pela rtland.team.
Confira a versão original desse post em inglês:
How To Install / Switch Between Multiple Java Versions Using SDKMAN