Obtengo OpenJDK 8 de los repositorios oficiales de Debian, en lugar de un PPA aleatorio o un binario de Oracle no gratuito. Así es como lo hice:
sudo apt-get install debian-keyring debian-archive-keyring
Hacer /etc/apt/sources.list.d/debian-jessie-backports.list
:
deb http://httpredir.debian.org/debian/ jessie-backports main
Hacer /etc/apt/preferences.d/debian-jessie-backports
:
Package: *
Pin: release o=Debian,a=jessie-backports
Pin-Priority: -200
Luego, finalmente haga la instalación:
sudo apt-get update
sudo apt-get -t jessie-backports install openjdk-8-jdk
sudo apt-get update
sudo apt-get install openjdk-8-jdk
esto debería funcionar
Como puede ver, solo tengo Java 1.7 instalado (en una máquina con Ubuntu 14.04).
update-java-alternatives -l
java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64
Para instalar Java 8, lo hice,
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-8-jdk
Después, ahora tengo java 7 y 8,
update-java-alternatives -l
java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64
java-1.8.0-openjdk-amd64 1069 /usr/lib/jvm/java-1.8.0-openjdk-amd64
BONO AÑADIDO (cómo cambiar entre diferentes versiones)
- ejecuta el siguiente comando desde la terminal:
sudo update-alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 auto mode
1 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 manual mode
* 2 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1069 manual mode
Press enter to keep the current choice[*], or type selection number:
Como puede ver, estoy ejecutando open jdk 8. Para cambiar a jdk 7, presione 1
y pulsa Intro llave. Haz lo mismo para javac
así como con, sudo update-alternatives --config javac
.
Verifique las versiones para confirmar el cambio:java -version
y javac -version
.
ACTUALIZAR :instalación sin privilegios de root a continuación
Le aconsejo que no instale paquetes manualmente en el sistema ubuntu si ya existe un repositorio (semioficial) capaz de resolver su problema. Además, use Oracle JDK para el desarrollo, solo para evitar problemas de compatibilidad (muy esporádicos) (lo intenté hace muchos años, seguramente es mejor ahora).
Agregue el webupd8 repositorio a su sistema:
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
Instale su versión preferida de jdk (versiones de java-6 a java-9 disponibles):
sudo apt-get install oracle-java8-installer
También puede instalar varias versiones de jdk, mezclando las versiones de openjdk y oracle. Luego puede usar el comando update-java-alternatives para cambiar entre la versión instalada:
# list available jdk
update-java-alternatives --list
# use jdk7
sudo update-java-alternatives --set java-7-oracle
# use jdk8
sudo update-java-alternatives --set java-8-oracle
Requisitos
Si obtienes add-apt-repository: command not found
asegúrese de tener software-properties-common
instalado:
sudo apt-get install software-properties-common
Si está utilizando una versión anterior de Ubuntu:
sudo apt-get install python-software-properties
Instalación de JDK sin privilegios de root
Si no tiene derechos de administrador en su máquina de destino, su apuesta más simple es usar sdkman
para instalar el openjdk certificado por zulu:
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk install java
NOTA :sdkman permite instalar también el JDK oficial de Oracle, aunque no es la opción predeterminada. Ver versiones disponibles con:
sdk ls java
Instale la versión elegida con:
sdk install java <version>
Por ejemplo:
sdk install java 9.0.1-oracle
Glosario de comandos
-
sudo
<command> [command_arguments]
:ejecuta un comando con el privilegio de superusuario. -
añadir-repositorio-apt
<PPA_id>
:Ubuntu (al igual que todos los derivados de Debian y, en general, todas las distribuciones de Linux) tiene un repositorio principal de paquetes que maneja cosas como dependencias de paquetes y actualizaciones. En Ubuntu es posible extender el repositorio principal usando un PPA (Personal Package Archive) que usualmente contiene paquetes que no están disponibles en el sistema (al igual que Oracle jdk) o versiones actualizadas de los disponibles (ejemplo:LibreOffice 5 en LTS está disponible solo a través de este APP). -
apt-get
[install|update|upgrade|purge|...]
:es "el" controlador de paquetes de línea de comandos que se usa para manipular el estado de cada repositorio en el sistema (la instalación/actualización/ampliación puede verse como una alteración del estado actual del repositorio).
En nuestro caso :con el comando sudo add-apt-repository ppa:webupd8team/java
informamos al sistema que la próxima actualización del repositorio debe recuperar la información de los paquetes también del repositorio webupd8.
Con sudo apt-get update
en realidad actualizamos el repositorio del sistema (todas estas operaciones requieren privilegios de superusuario, por lo que anteponemos sudo a los comandos).
sudo apt-get install oracle-java8-installer
-
actualizar-java-alternativas (una versión java específica de update-alternatives ):en Ubuntu, varios paquetes proporcionan la misma funcionalidad (navegar por Internet, compilar correos, editar un archivo de texto o proporcionar ejecutables java/javac...). Para permitir que el sistema elija la herramienta favorita del usuario dada una tarea específica un mecanismo que utiliza enlaces simbólicos en
/etc/alternatives/
se usa Intente actualizar el jdk como se indica arriba (cambie entre java 7 y java 8) y vea cómo cambia la salida de este comando:ls -l /etc/alternatives/java*
En nuestro caso :sudo update-java-alternatives --set java-8-oracle
actualice los enlaces simbólicos en /etc/alternatives para que apunten a los ejecutables java-8-oracle.
Extras:
-
hombre
<command>
:comience a usar man para leer una ayuda muy bien escrita y detallada sobre (casi) cada comando de shell y sus opciones (cada comando que menciono en esta pequeña respuesta tiene una página de manual, pruebeman update-java-alternatives
). -
apt-caché
search <search_key>
:consulte el caché de APT para buscar un paquete relacionado con la clave de búsqueda proporcionada (puede ser el nombre del paquete o alguna palabra en la descripción del paquete). -
apt-caché
show <package>
:proporciona información APT para un paquete específico (versión del paquete, instalado o no, descripción).