Instalar y configurar SDKMAN en Windows 10


SDKMAN! (https://sdkman.io/es una herramienta para manejar múltiples versiones de SDK en paralelo. Basado en Unix/Linux. 
Esta es una guía para la puesta en marcha en Windows 10.


La guía de instalación de SDKMan indica que hay 3 opciones (https://sdkman.io/install), la opción elegida es "git bash para windows".

Previos:
1. Crear la variable de entorno HOME, que apunte al directorio del usuario de windows (c:/Users/UsuarioWindows10; ejemplo: c:/Users/ZolyD ) 




2. Instalar Git (si lo tienen instalado - omitir paso) - https://git-scm.com/

INSTALACIÓN DE SDKMAN
3.  Iniciar la aplicación git bash (instalado en el paso 2) y ejecutar la siguiente secuencia de comandos
cd $HOME
curl -s "https://get.sdkman.io" > get_sdkman_io.bash


4. Ir al directorio de Usuario desde el explorador y abrir el archivo get_sdkman_io.bash con el editor de texto favorito.

5. Comentar (con #) el texto en el que se realiza la búsqueda de zip para continuar con la instalación y guardar los cambios.

6. Iniciar la aplicación git bash e instalar SDKMAN desde archivo, con el siguiente comando:
export SDKMAN_DIR="/c/Users/UsuarioWindows10/.sdkman" && sh get_sdkman_io.bash

ejemplo:
export SDKMAN_DIR="/c/Users/ZolyD/.sdkman" && sh get_sdkman_io.bash




Éxito:

Cerrar la ventana de git bash, para que actualice la configuración de SDKMAN.

7. Crear la variable de entorno JAVA_HOME, que apunte al directorio de sdkman:
C:\Users\UsuarioWindows10\.sdkman\candidates\java\current
ejemplo:
C:\Users\ZolyD\.sdkman\candidates\java\current



8. Editar la variable de entorno (de sistema) Path y agregar la siguiente instrucción:

%JAVA_HOME%\bin



9. Cerrar la sesión de Windows o reiniciar.

10. Validar la instalación de SDKMAN, abrir git bash y ejecutar el comando:
sdk v

Hemos finalizado la instalación de SDKMAN en Windows 10.

***Extra (Obligatorio)*** Bugfix 
11. Es un bug que encontré en la versión de SDKMan, que impide la re-creación del directorio "current" cuando se define la versión de java a utilizar.


Comandos útiles SDKMAN - Java (desde git bash)
1. Listar versiones de Java disponibles:
sdk list java


2. Instalar Java, debe instalarse utilizando el nombre que aparece en la columna identifier (identificador).
sdk install java identifier_id
Ejemplo (al 23/03/2020):
Instalar java versión 14 de openjdk, comando: sdk install java 14.0.0.j9-adpt
Instalar java versión 13 de openjdk, comando: sdk install java 13.0.2.j9-adpt
Instalar java versión 11 de openjdk, comando: sdk install java 11.0.6.j9-adpt
Instalar java versión 8 de openjdk, comando: sdk install java 8.0.242.j9-adpt
Del mismo modo, pueden instalarse las versiones que requieran.

3. Saber que versiones de Java tengo instaladas, verificar la columna "status" que indica installed.
sdk list java

En mi caso, tengo instalado las versiones de java 14, 13, 11 y 8

4. Cambiar de Versiones Java
Caso: tengo activa la versión 14.0.0.j9-adpt, cambiare a la versión 13.
  a. Validar la versión de java: java -version

b. Cambiar a la version java 13 (debe utilizarse el nombre Identifier (identificador) -ver paso 3):
sdk default java 13.0.2.j9-adpt
Se visualiza un error cannot remove ... 'current': Is a directoryValidar version de java: java -version
Lo cual indica que no se realizo el cambio de version de java 14 a java 13.*** Inicio de BugFix ***Aqui haremos un bugfix para permitir que se produzca el cambio.
bugFix - Permitir cambiar directorio current de sdkman
bubfix paso 1: Editar el archivo sdkman-path-helpers.sh, ubicado en la ruta: %HOME%/.sdkman/src/

bugfix paso 2: cambiar la linea 85
rm -f "${SDKMAN_CANDIDATES_DIR}/${candidate}/current"

por este valor:
rm -rf "${SDKMAN_CANDIDATES_DIR}/${candidate}/current/"


Guardar los cambios, cerrar la consola de git bash para que apliquen los cambios.
*** Fin de BugFix ***

Volviendo al cambio de versión, abrir consola de git bash b. Cambiar a la version java 13 (debe utilizarse el nombre Identifier (identificador) -ver paso 3):


sdk default java 13.0.2.j9-adpt
De este modo puedes cambiar (hacer switch) entre versiones java que quieras probar/utilizar.Saludos y espero que les haya servido.

Comentarios

Publicar un comentario

Entradas más populares de este blog

Codigo de Conector