En Debian Jessie los paquetes sun-java-* (Java de Oracle) no están disponibles en los repositorios. Sin embargo, se puede utilizar el paquete "JavaPackage" para generar los paquetes de Debian a partir de los distribuibles del JDK proporcionado por Oracle. En la presente entrada les explico como hacerlo.
Si deseas conocer la versión predeterminada de Java que tienes instalada antes de comenzar, puedes ejecutar el siguiente comando
$ java -version
java version "1.7.0_91"
OpenJDK Runtime Environment (IcedTea 2.6.3) (7u91-2.6.3-1~deb8u1)
OpenJDK 64-Bit Server VM (build 24.91-b01, mixed mode)
Lo primero que hay que hacer es instalar paquete que luego nos permitirá construir el instalador de Java, en una terminal ejecuta el siguiente comando
$ sudo apt-get install java-package
El paquete que vamos a instalar se llama "oracle-java8-jdk" y lo haremos a partir de un distribuible provisto en el sitio oficial de Oracle. Existe versión para 32 y 64 bits, sigue las instrucciones que corresponda a tu caso particular.
GNU/Linux Debian de 32 bits (i386)
Para descargar la versión de 32 bits, ejecute en una terminal el siguiente comando
$ wget --no-cookies --no-check-certificate --header "Cookie: oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u65-b17/jdk-8u65-linux-i586.tar.gz"
Para crear el paquete .deb, ejecute el siguiente comando
$ fakeroot make-jpkg jdk-8u65-linux-i586.tar.gz
Detected Debian build architecture: i386
Detected Debian GNU type: i486-linux-gnu
Detected product:
Java(TM) Development Kit (JDK)
Standard Edition, Version 1.8.0+update20
Oracle(TM), Inc.
Is this correct [Y/n]: Y
GNU/Linux Debian de 64 bits (amd64)
Para descargar la versión de 64 bits, ejecute en una terminal el siguiente comando
wget --no-cookies --no-check-certificate --header "Cookie: oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u65-b17/jdk-8u65-linux-x64.tar.gz"
Para crear el paquete .deb, ejecute el siguiente comando
$ fakeroot make-jpkg jdk-8u65-linux-x64.tar.gz
Detected Debian build architecture: amd64
Detected Debian GNU type: x86_64-linux-gnu
Detected product:
Java(TM) Development Kit (JDK)
Standard Edition, Version 1.8.0+update20
Oracle(TM), Inc.
Is this correct [Y/n]: Y
Instalando el paquete generado (independiente de la arquitectura)
Para instalar el paquete recién generado, ejecute el siguiente comando
sudo dpkg -i oracle-java8*.deb
Ahora deberíamos tener más de una versión de Java, para ver las versiones disponibles en nuestro sistema, ejecute el siguiente comando
$ sudo update-java-alternatives -l
java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64
jdk-8-oracle-x64 318 /usr/lib/jvm/jdk-8-oracle-x64
Para asignar como predeterminada la versión Java de Oracle (en 64 bits), ejecute el siguiente comando (para 32 bits reemplace "jdk-8-oracle-x64" por el que corresponda según la salida del comando anterior)
$ sudo update-java-alternatives -s jdk-8-oracle-x64
Otra forma de seleccionar la versión a predeterminar es por medio del siguiente comando (debe ingresar el número que corresponde a la versión de Java que desea asignar).
sudo update-alternatives --config java
Existen 2 opciones para la alternativa java (que provee /usr/bin/java).
Selección Ruta Prioridad Estado
------------------------------------------------------------
* 0 /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java 1061 modo automático
1 /usr/lib/jvm/j2sdk1.8-oracle/jre/bin/java 319 modo manual
2 /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java 1061 modo manual
Pulse para mantener el valor por omisión [*] o pulse un número de selección: 1
Es probable que algunos programas busquen a Java en la ruta donde solía instalarse la versión "sun-java", para evitar inconvenientes vamos a crear un par de enlaces simbólicos, ejecutando los siguientes comandos
$ sudo ln -s /usr/lib/jvm/j2sdk1.8-oracle/ /usr/lib/jvm/java-6-sun
$ sudo ln -s /usr/lib/jvm/j2sdk1.8-oracle/ /usr/lib/jvm/java-7-sun
$ sudo ln -s /usr/lib/jvm/j2sdk1.8-oracle/ /usr/lib/jvm/java-8-oracle
Finalmente comprobamos que la versión de Java de Oracle se encuentra correctamente asignada, con el siguiente comando
$ java -version
java version "1.8.0_20"
Java(TM) SE Runtime Environment (build 1.8.0_20-b26)
Java HotSpot(TM) 64-Bit Server VM (build 25.20-b23, mixed mode)