Upgrade de Java en CentOS

Cómo usar una versión actualizada de Java sin desinstalar la antigua en CentOS server

En este tutorial mostraremos como con unos pocos pasos podemos reemplazar una versión antigua de Java en CentOs por la que nos interese.

En realidad esto puede servir para reemplazar cualquier aplicación o comando porque lo que se trata es de modificar, usando el comando alternatives de linux, la aplicación que se ejecuta al llamar a ese comando. Veamos detalladamente este ejemplo donde reemplazaremos la aplicación que se ejecuta al usar el comando java:

Primero podemos usar el comando

java -version

que sirve para conocer cúal es la última versión de java instalada de nuestro servidor antes de hacer ningun cambio.

Ahora descargaremos la última versión de Java de la página oficial. Tenéis que cambiar la url de este ejemplo por la verdadera.

curl -L -O http://....jdk-6u18-linux-i586.bin

Se descargará el archivo empaquetado bin. Podemos cambiarle los permisos de ejecución y ejecutarlo:

chmod +x jdk-6u18-linux-i586.bin
./jdk-6u18-linux-i586.bin

Tras ejecutar el comando anterior, el programa se desempaqueta en la misma carpeta. Podemos moverlo donde nos plazca, un buen sitio puede ser

mv jdkxxx /usr/local

Ahora viene lo interesante:

alternatives --install /usr/bin/java java /usr/jdkxxx/java 2

Lo que hace este comando es agregar una alternativa para este comando. Finalmente llamamos otra vez a este comando para asignar el comando java a la ruta de la nueva instalación.

alternatives --config java

y podemos seleccionar el comando que queremos ejecutar.

Efectivamente, este método sólo modifica el comando java, de forma que el resto de comandos (javac, etc) deberíamos reemplazarlos manualmente de la misma forma.

En general es un buen recurso para reemplazar comandos si creemos que alguna vez deberemos necesitar el antiguo, puesto que en otros casos quizá nos interese desinstalar la aplicación anterior e instalar la nueva versión.