1. Información general
Con el nuevo ciclo de lanzamiento de Java, los desarrolladores pueden necesitar administrar versiones paralelas y diferentes compilaciones de kits de desarrollo de software (SDK) en su entorno. Por lo tanto, establecer la variable PATH puede convertirse en un verdadero problema a veces.
En este tutorial, veremos cómo SDKMAN! puede ayudar a administrar la instalación y selección de SDK con facilidad.
2. ¿Qué es SDKMAN?
SDKMAN! es una herramienta para administrar versiones paralelas de múltiples SDK, que SDKMAN! llamar "candidatos" .
Proporciona una interfaz de línea de comandos (CLI) conveniente y una API para enumerar, instalar, cambiar y eliminar candidatos. Además, se encarga de configurar las variables de entorno por nosotros.
También permite a los desarrolladores instalar SDK basados en JVM como Java, Groovy, Scala, Kotlin y Ceylon. También se admiten Maven, Gradle, SBT, Spring Boot, Vert.x y muchos otros. SDKMAN! es una utilidad gratuita, ligera y de código abierto escrita en Bash.
3. Instale SDKMAN!
SDKMAN! es compatible con los principales sistemas operativos y se puede instalar fácilmente en todos los sistemas basados en Unix. Además, admite shells Bash y Zsh.
Así que comencemos por instalarlo usando la terminal:
$ curl -s "//get.sdkman.io" | bash
Luego, siga las instrucciones en pantalla para completar la instalación.
Es posible que necesitemos los paquetes zip y unzip instalados para completar el proceso de instalación.
A continuación, abra una nueva terminal o ejecute:
$ source "$HOME/.sdkman/bin/sdkman-init.sh"
Por último, ejecute el siguiente comando para asegurarse de que la instalación haya funcionado. Si todo salió bien, debería mostrarse la versión:
$ sdk version SDKMAN 5.8.5+522
Para obtener más personalización, consulte la guía de instalación del SDKMAN. sitio web.
Para ver todos los comandos disponibles, use el comando de ayuda :
$ sdk help
4. Enumere todos los candidatos al SDK
Entonces, comencemos enumerando todos los candidatos de SDK disponibles.
$ sdk list
El comando list muestra todos los candidatos disponibles, identificados por un nombre único, la descripción, el sitio web oficial y el comando de instalación:
===================================================== Available Candidates ===================================================== q-quit /-search down j-down ?-search up k-up h-help ----------------------------------------------------- Java (11.0.7.hs-adpt) //zulu.org ... $ sdk install java ----------------------------------------------------- Maven (3.6.3) //maven.apache.org ... $ sdk install maven ----------------------------------------------------- Spring Boot (2.3.1.RELEASE) //spring.io ... $ sdk install springboot ------------------------------------------------------ ...
Por lo tanto, podemos usar este identificador para instalar la versión predeterminada de un candidato como Spring Boot (2.3.1.RELEASE) o Maven (3.6.3). Las versiones especificadas en esta lista representan las versiones estable o LTS de cada SDK.
5. Instalar y administrar versiones de Java
5.1. Listado de versiones
Para enumerar las versiones disponibles de Java, use el comando list . El resultado es una tabla de entradas agrupadas por el proveedor y ordenadas por versión:
$ sdk list java =================================================================== Available Java Versions =================================================================== Vendor | Use | Version | Dist | Status | Identifier ------------------------------------------------------------------- AdoptOpenJDK | | 14.0.1 | adpt | | 14.0.1.j9-adpt ... Amazon | | 11.0.8 | amzn | | 11.0.8-amzn ... Azul Zulu | | 14.0.2 | zulu | | 14.0.2-zulu ... BellSoft | | 14.0.2 | librca | | 14.0.2.fx-librca ... GraalVM | | 20.1.0 | grl | | 20.1.0.r11-grl ... Java.net | | 16.ea | open | | 16.ea.6-open ... SAP | | 14.0.2 | sapmchn | | 14.0.2-sapmchn ...
Necesitaremos este comando cada vez que queramos verificar, cambiar o administrar el almacenamiento de candidatos.
5.2. Instalar una versión de Java
Digamos que queremos instalar la compilación más reciente de Java 14 de Azul Zulu. Por lo tanto, copiamos su identificador, que es la versión de la tabla, y lo agregamos como argumento en el comando de instalación :
$ sdk install java 14.0.2-zulu Downloading: java 14.0.2-zulu In progress... ########### 100.0% Repackaging Java 14.0.2-zulu... Done repackaging... Installing: java 14.0.2-zulu Done installing! Setting java 14.0.2-zulu as default.
SDKMAN! descargará y descomprimirá esta versión en un directorio en nuestra computadora.
Además, actualizará las variables de entorno para que podamos usar Java en la terminal de inmediato.
Podemos verificar el estado y el uso de cualquier versión usando el comando list . En consecuencia, la versión 14.0.1 ya está instalada y en uso:
$ sdk list java ================================================================= Available Java Versions ================================================================= Vendor | Use | Version | Dist | Status | Identifier ----------------------------------------------------------------- ... Azul Zulu | >>> | 14.0.1 | adpt | installed | 14.0.1.j9-adpt ...
Además, es posible instalar Java o cualquier versión personalizada desde una computadora con el mismo comando pero especificando la ruta de los binarios como un argumento adicional:
$ sdk install java custom-8 ~/Downloads/my-company-jdk-custom-8
5.3. Cambiar entre versiones
Podemos controlar el cambio entre versiones de dos formas, temporalmente:
$ sdk use java 14.0.1.j9-adpt
o permanentemente:
$ sdk default java 14.0.1.j9-adpt
5.4. Eliminar una versión
Para eliminar una versión instalada, ejecute el comando de desinstalación con la versión de destino:
$ sdk uninstall java 14.0.1.j9-adpt
5.5. Mostrar las versiones en uso
Para verificar la versión actual de Java, ejecutamos el comando actual :
$ sdk current java Using java version 14.0.2-zulu
Del mismo modo, el último comando tiene el mismo efecto que:
$ java -version
Para mostrar la versión por SDK en nuestra máquina, podemos ejecutar el comando actual sin argumentos:
$ sdk current Using: java: 14.0.2-zulu gradle: 6.2.2
6. ¡Usando SDKMAN! con un IDE
Los SDK instalados se almacenan en SDKMAN. directorio que por defecto es ~ / .sdkman / candidatos .
Por ejemplo, las diferentes versiones de Java también estarán disponibles en el directorio ~ / .sdkman / candidatos / java / y los subdirectorios llevan el nombre de las versiones:
$ ls -al ~/.sdkman/candidates/java/ total 0 drwxrwxrwx 1 user user 12 Jul 25 20:00 . drwxrwxrwx 1 user user 12 Jul 25 20:00 .. drwxrwxr-x 1 user user 12 Jul 25 20:00 14.0.2-zulu lrwxrwxrwx 1 user user 14 Jul 25 20:00 current -> 14.0.2-zulu
Por lo tanto, la versión de Java actualmente seleccionada también estará disponible como actual en ese directorio.
Del mismo modo, Gradle o cualquier otro SDK se instalará en el directorio de candidatos .
In this way, we can use any particular version of Java, for example in our favorite IDE. All we have to do is to copy the path of a specific version and set it in the configuration of our IDE.
6.1. IntelliJ IDEA
In IntelliJ IDEA, open “Project Structure”, then open “Project Settings”. In the project configuration, we can add a new Java version by selecting “New…” from the “Project SDK” section:

We can also define the version of Java, Gradle, or Maven to use in the “Build Tools” section:

Tip: The version of Java must be the same as used in “Project SDK” for Gradle or Maven.
6.2. Eclipse
In Eclipse open “Project Properties”, select “Java Build Path”, and then switch to the “Libraries” tab. Here, we can manage the new SDK of Java via “Add Library…” and by following the instructions:

También podemos controlar los SDK instalados para todos los proyectos. Abra "Preferencias" en el menú "Ventana" y luego vaya a "JRE instalados". Aquí podemos administrar el SDK de Java a través de "Agregar ..." y siguiendo las instrucciones:

7. Conclusión
En este tutorial, hemos mostrado cómo SDKMAN! puede ayudarnos a administrar diferentes versiones de Java SDK entre otras herramientas de Java Environment como Maven.