Como instalar/alternar entre várias versões de Java usando SDKMAN

22 de julho de 2020

SDKMAN!

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).

1. Instale o SDKMAN!

Para começar, instale o SDKMAN! interface de linha de comando.

2. Liste todas as versões candidatas de Java

Agora esse SDKMAN! está instalado, vamos colocá-lo em uso. Use este comando para listar todas as versões candidatas de Java:

Comandos para usar no terminal

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.

3. Instale uma versão Java usando SDKMAN!

O comando que você pode usar para instalar uma versão Java é:

Comandos para usar no terminal

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 é:

Comandos para usar no terminal

sdk install java 11.0.8.hs-adpt

SDKMAN! também pode instalar uma versão local do Java, como esta:

Comandos para usar no terminal

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:

Comandos para usar no terminal

sdk install java 14.0.2-oracle ~/Downloads/jdk-14.0.2

4. Alterne entre as versões Java

Existem 3 maneiras de gerenciar versões Java usando SDKMAN!:

  • definir uma versão Java como padrão
  • usar uma versão Java apenas para a sessão de terminal atual
  • ativar uma versão específica do Java ao entrar em um diretório

A. Defina uma versão Java como padrão

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:

Comandos para usar no terminal

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:

Comandos para usar no terminal

sdk default java 11.0.8.hs-adpt

Isso também define a variável de ambiente JAVA_HOME para ~/.sdkman/candidate/java/current.

B. Use uma versão Java apenas para a sessão de terminal atual

Comandos para usar no terminal

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:

Comandos para usar no terminal

sdk use java 14.0.2-oracle

C. Ative uma versão específica do Java ao inserir um diretório

Execute-o no diretório para o qual deseja usar uma versão Java personalizada:

Comandos para usar no terminal

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:

Comandos para usar no terminal

sdk current java

Você também pode consultar o Java diretamente sobre a versão atual em uso:

Comandos para usar no terminal

java -version

Comandos para usar no terminal

javac -version

Esse post foi traduzido do site LinuxUprising.com pela rtland.team.

Linux Uprising Blog

Confira a versão original desse post em inglês:

How To Install / Switch Between Multiple Java Versions Using SDKMAN
Propaganda
Propaganda