Gestión de versiones Java con Jenv

Julio Santa Maria
eurobits-techblog
Published in
3 min readOct 22, 2018

A lo largo de mi vida como Javero me he encontrado un problema muy común en la mayoría de los proyectos por los que he pasado, en cada proyecto se utiliza una versión de Java distinta e incluso en etapas determinadas nos encargamos de varios proyectos y cada uno tiene su propia versión de Java.

Esto suele ser bastante tedioso a la hora de trabajar ya que al hacer ‘el cambio de chip’ nos tenemos que acordar de modificar toda la configuración de Java para que todo funcione correctamente, y ya sabemos que en general las personas somos siempre muy olvidadizas y es bastante común la situación de estar una mañana dando vueltas a algo que ‘la semana pasada dejaste funcionando sin problemas, y al retomarlo hoy sin hacer cambios y sin motivo aparente no se ejecuta o no compila correctamente’ hasta que te das cuenta de que el problema es que necesita una versión de java distinta

Todos estos cambios de configuración se gestionan muy facilmente con una herramienta llamada jenv (http://www.jenv.be/). La herramienta funciona tanto con Linux como con OsX así que los usuarios windows tendrán que seguir sufriendo.

En la página de la herramienta está todo muy bien documentado pero a modo de resumen:

Instalación de la herramienta

  • Descargar con git la última versión de la herramienta:

$ git clone https://github.com/gcuisinier/jenv.git ~/.jenv

  • Hacer que la herramienta cargue en el profile de nuestro usuario.

$ echo ‘export PATH=”$HOME/.jenv/bin:$PATH”’ >> ~/.bash_profile
$ echo ‘eval “$(jenv init -)”’ >> ~/.bash_profile

  • Reiniciar nuestra sesión en el sistema para que cargue de nuevo correctamente el profile del usuario (con la herramienta cargada). Para comprobar que la herramienta se instaló correctamente basta con abrir una terminal y escribir jenv

Gestionar las versiones de Java.

Una vez que todo está instalado correctamente es necesario decirle a jenv que versiones de java vamos a utilizar.

Las versiones de java se descargan como siempre de la página de oracle y nos las descomprimimos donde nos venga bien. Yo personalmente las voy poniendo en el directorio /usr/lib/jvm

Yo en este directorio tengo los subdirectorios jdk-6, jdk-7, jdk-8, jdk-9 y jdk-10

Para añadir cada una de las versiones se lanza el comando:

jenv add /usr/lib/jvm/jdk-6

jenv add /usr/lib/jvm/jdk-7

jenv add /usr/lib/jvm/jdk-8

jenv add /usr/lib/jvm/jdk-9

jenv add /usr/lib/jvm/jdk-10

Tras añadir todas las versiones de Java si lanzamos el comando jenv versions veremos las versiones de java que la herramienta tiene controladas

Ahora sólo falta indicar que versión de java queremos usar en cada momento:

Para indicar la versión de java general del sistema usamos: jenv global oracle64–1.8.0.171

Con este comando siempre que lancemos java xxxxx utilizará la versión de java indicada, a no ser que queramos cambiar la versión de java para un directorio en concreto con lo que en dicho directorio usaremos previamente el comando jenv local oracle64–9.0.4 con lo que tras lanzar este comando en un directorio dado se sobreescribirá la versión de java utilizada por el resto del sistema.

En la siguiente imagen se ve como para dos directorios se define una versión concreta de java para un directorio y se visualiza la versión de java por defecto en el directorio directorioGlobal y la versión sobreescrita para el directorio directorioLocal.

Con estos sencillos pasos creo que todos los javeros viviremos un poquito mejor.

--

--