J'obtiens OpenJDK 8 à partir des dépôts Debian officiels, plutôt que d'un PPA aléatoire ou d'un binaire Oracle non libre. Voici comment j'ai procédé :
sudo apt-get install debian-keyring debian-archive-keyring
Faire /etc/apt/sources.list.d/debian-jessie-backports.list
:
deb http://httpredir.debian.org/debian/ jessie-backports main
Faire /etc/apt/preferences.d/debian-jessie-backports
:
Package: *
Pin: release o=Debian,a=jessie-backports
Pin-Priority: -200
Ensuite, faites enfin l'installation :
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
cela devrait fonctionner
Comme vous pouvez le voir, je n'ai installé que Java 1.7 (sur une machine Ubuntu 14.04).
update-java-alternatives -l
java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64
Pour installer Java 8, je l'ai fait,
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-8-jdk
Après, maintenant j'ai java 7 et 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
BONUS AJOUTÉ (comment basculer entre différentes versions)
- exécutez la commande suivante depuis le 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:
Comme vous pouvez le voir, j'exécute open jdk 8. Pour passer à jdk 7, appuyez sur 1
et appuyez sur Entrée clé. Faites de même pour javac
ainsi que, sudo update-alternatives --config javac
.
Vérifiez les versions pour confirmer le changement :java -version
et javac -version
.
MISE À JOUR :installation sans privilèges root ci-dessous
Je vous conseille de ne pas installer les packages manuellement sur le système ubuntu s'il existe déjà un référentiel (semi-officiel) capable de résoudre votre problème. De plus, utilisez Oracle JDK pour le développement, juste pour éviter les problèmes de compatibilité (très sporadiques) (j'ai essayé il y a de nombreuses années, c'est sûrement mieux maintenant).
Ajoutez le webupd8 dépôt sur votre système :
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
Installez votre version préférée de jdk (versions de java-6 à java-9 disponibles) :
sudo apt-get install oracle-java8-installer
Vous pouvez également installer plusieurs versions de jdk, en mélangeant les versions openjdk et oracle. Ensuite, vous pouvez utiliser la commande update-java-alternatives pour basculer entre les versions installées :
# 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
Exigences
Si vous obtenez add-apt-repository: command not found
assurez-vous d'avoir software-properties-common
installé :
sudo apt-get install software-properties-common
Si vous utilisez une ancienne version d'Ubuntu :
sudo apt-get install python-software-properties
Installation JDK sans privilèges root
Si vous n'avez pas les droits d'administrateur sur votre machine cible, votre pari le plus simple est d'utiliser sdkman
pour installer l'openjdk certifié zulu :
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk install java
REMARQUE :sdkman permet d'installer également le JDK officiel d'Oracle, bien que ce ne soit pas l'option par défaut. Afficher les versions disponibles avec :
sdk ls java
Installez la version choisie avec :
sdk install java <version>
Par exemple :
sdk install java 9.0.1-oracle
Glossaire des commandes
-
sudo
<command> [command_arguments]
:exécute une commande avec le privilège de superutilisateur. -
add-apt-repository
<PPA_id>
:Ubuntu (tout comme tous les dérivés de Debian et généralement toutes les distributions Linux) possède un référentiel principal de packages qui gère des éléments tels que les dépendances de packages et la mise à jour. Dans Ubuntu, il est possible d'étendre le référentiel principal à l'aide d'un PPA (Personal Package Archive) qui contient généralement des packages non disponibles dans le système (tout comme oracle jdk) ou des versions mises à jour de ceux disponibles (exemple :LibreOffice 5 dans LTS n'est disponible que via ce PPA). -
apt-get
[install|update|upgrade|purge|...]
:c'est "le" gestionnaire de paquets en ligne de commande utilisé pour manipuler l'état de chaque référentiel sur le système (l'installation / la mise à jour / la mise à niveau peut être considérée comme une modification de l'état actuel du référentiel).
Dans notre cas :avec la commande sudo add-apt-repository ppa:webupd8team/java
nous informons le système que la prochaine mise à jour du référentiel doit également récupérer les informations sur les packages à partir du référentiel webupd8.
Avec sudo apt-get update
nous mettons en fait à jour le référentiel système (toutes ces opérations nécessitent des privilèges de superutilisateur, nous préajoutons donc sudo aux commandes).
sudo apt-get install oracle-java8-installer
-
mise à jour-java-alternatives (une version java spécifique de update-alternatives ) :dans Ubuntu, plusieurs packages fournissent les mêmes fonctionnalités (naviguer sur Internet, compiler des e-mails, éditer un fichier texte ou fournir des exécutables java/javac...). Pour permettre au système de choisir l'outil de favoris de l'utilisateur pour une tâche spécifique un mécanisme utilisant des liens symboliques sous
/etc/alternatives/
est utilisé. Essayez de mettre à jour le jdk comme indiqué ci-dessus (basculez entre java 7 et java 8) et voyez comment modifier la sortie de cette commande :ls -l /etc/alternatives/java*
Dans notre cas :sudo update-java-alternatives --set java-8-oracle
mettre à jour les liens symboliques sous /etc/alternatives pour pointer vers les exécutables java-8-oracle.
Extras :
-
homme
<command>
:commencez à utiliser man pour lire une aide très bien écrite et détaillée sur (presque) toutes les commandes shell et ses options (chaque commande que je mentionne dans cette petite réponse a une page de manuel, essayezman update-java-alternatives
). -
apt-cache
search <search_key>
:interroge le cache APT pour rechercher un package lié à la clé de recherche fournie (peut être le nom du package ou un mot dans la description du package). -
apt-cache
show <package>
:fournit des informations APT pour un package spécifique (version du package, installé ou non, description).