Instalar Oracle Java en Linux

En ocasiones Oracle obliga a utilizar Oracle JAVA en lugar de otras opciones como Open JDK para sus productos. Por ejemplo, para instalar Oracle Weblogic Server 12c el el instalador no permitía continuar con Open JDK instalado.

Para instalar Oracle Java JDK/JRE en Linux tenemos principalmente dos opciones, instalar a través del RPM oficial (CentOS, RHEL, Fedora, Scientific Linux, SuSe) o manualmente con el archivo binario. La primera opción es mucho más sencilla, pero no nos valdrá en Debian y Ubuntu por ejemplo, así que os voy a enseñar las dos opciones.

Todas las opciones de descarga (rpm, .tar.gz, x86_64, x86…) están en el sitio web de Oracle:

http://www.oracle.com/technetwork/java/javase/downloads/

En esta guía vamos a instalar la versión 8u20 x86.

Instalar Oracle JDK en Linux con RPM

Tan sencillo como descargar el RPM e instalarlo vía yum o con el comando rpm. El «problema» de esta opción es que la instalación viene con directorios preestablecidos y se integra con el sistema. Si queremos personalizar la instalación y mantener varias versiones de JDK o JRE en el sistema probablemente es mejor utilizar la otra opción de instalación.

Instalación del RPM:

# rpm -ivh jdk-8u20-linux-i586.rpm 
Preparing...                ########################### [100%]
   1:jdk1.8.0_20            ########################### [100%]
Unpacking JAR files...
	rt.jar...
	jsse.jar...
	charsets.jar...
	tools.jar...
	localedata.jar...
	jfxrt.jar...
	plugin.jar...
	javaws.jar...
	deploy.jar...

O si lo hacemos por yum:

# yum install jdk-8u20-linux-i586.rpm 
Loaded plugins: fastestmirror, presto
Loading mirror speeds from cached hostfile
 * base: mirror.tedra.es
 * extras: mirror.tedra.es
 * updates: mirror.tedra.es
Setting up Install Process
Examining jdk-8u20-linux-i586.rpm: 2000:jdk1.8.0_20-1.8.0_20-fcs.i586
Marking jdk-8u20-linux-i586.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package jdk1.8.0_20.i586 2000:1.8.0_20-fcs will be installed
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================
 Package        Arch  Version    Repository                    Size
====================================================================
Installing:
 jdk1.8.0_20   i586  2000:1.8.0_20-fcs  /jdk-8u20-linux-i586    219 M

Transaction Summary
=====================================================================
Install       1 Package(s)

Total size: 219 M
Installed size: 219 M
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : 2000:jdk1.8.0_20-1.8.0_20-fcs.i586                                                                   1/1 
Unpacking JAR files...
	rt.jar...
	jsse.jar...
	charsets.jar...
	tools.jar...
	localedata.jar...
	jfxrt.jar...
	plugin.jar...
	javaws.jar...
	deploy.jar...
  Verifying  : 2000:jdk1.8.0_20-1.8.0_20-fcs.i586                                                                   1/1 

Installed:
  jdk1.8.0_20.i586 2000:1.8.0_20-fcs                                                                                    

Complete!

Verificamos que automáticamente la versión de JAVA instalada se ha configurado por defecto en el sistema, se ha añadido en el PATH, etc:

# java -version
java version "1.8.0_20"
Java(TM) SE Runtime Environment (build 1.8.0_20-b26)
Java HotSpot(TM) Client VM (build 25.20-b23, mixed mode, sharing)

Si tenéis otras versiones instaladas y no ha sido actualizado, podéis usar update-alternatives para seleccionar la versión correcta. El PATH donde se instala es:

# /usr/java/jdk1.8.0_20/bin/java -version
java version "1.8.0_20"
Java(TM) SE Runtime Environment (build 1.8.0_20-b26)
Java HotSpot(TM) Client VM (build 25.20-b23, mixed mode, sharing)

Y update alternatives se lanza del siguiente modo, aparecerá un menú para elegir la versión a aplicar por defecto:

# update-alternatives --config java

Instalar Oracle JDK en Linux manualmente

Descargamos Oracle JAVA en archivo binario (jdk-8u20-linux-***.tar.gz) y lo descomprimimos:

$ tar -xzvf jdk-8uversion-linux-i586.tar.gz

El directorio resultante ya es una instalación funcional de JAVA, lo ubicamos donde estimemos oportuno:

# mv jdk1.8.0_20 /opt/pre>

Sin más trabajo, ya podemos comenzar a utilizar JAVA:
# /mnt/jdk1.8.0_20/bin/java -version
java version "1.8.0_20"
Java(TM) SE Runtime Environment (build 1.8.0_20-b26)
Java HotSpot(TM) Client VM (build 25.20-b23, mixed mode)

Para añadirlo al sistema y que se configure como versión de java por defecto, se añada en el path, etc usamos el comando «alternatives»:

# alternatives --install /usr/bin/java java /opt/jdk1.8.0_20/bin/java 10000

Vemos como se ha añadido:

# update-alternatives --config java

There is 1 program that provides 'java'.

  Selection    Command
-----------------------------------------------
*+ 1           /opt/jdk1.8.0_20/bin/java

Y verificamos sin especificar el path que funciona correctamente:

# java -version
java version "1.8.0_20"
Java(TM) SE Runtime Environment (build 1.8.0_20-b26)
Java HotSpot(TM) Client VM (build 25.20-b23, mixed mode)

Como veis, es cuestión de gustos, ambas instalaciones son sencillas, el RPM lo utilizaremos para no complicarnos la vida si no vamos a utilizar más que una versión de JDK/JRE y no vamos a necesitar modificar nada. En cambio con la instalación precompilada podemos bajarnos una buena cantidad de versiones y mantener todas en el sistema como nos plazca.