Ubuntu: OpenJDK 8 - Impossible de localiser le paquet

95

Je viens donc d'installer Ubuntu, et c'est la première fois que je travaille dans un environnement Linux, alors supportez ma noobishness ici.

Quoi qu'il en soit, j'ai téléchargé le JDK Java 8 directement à partir d'Oracle, mais je crois comprendre qu'il existe également un OpenJDK pour Java 8. J'ai deux questions.

  1. Quelle est la différence entre la version Oracle et OpenJDK. Avantages / inconvénients?

  2. Quand j'essaye d'obtenir OpenJDK 8, je ne peux pas. Je colle la commande de terminal et le message d'erreur que j'obtiens ici, dans l'espoir d'un conseil. Encore une fois, très nouveau sur Linux, je suis sur ma première distribution Linux depuis moins d'une heure ici à ce stade.

    user@computer:~/Java$ sudo apt-get install openjdk-8-jdk
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    E: Unable to locate package openjdk-8-jdk

Toute aide serait appréciée. En attendant, je vais juste utiliser le package Oracle. Merci.

Éditer:

Alors, maintenant, j'ai un nouveau problème. J'ai installé OpenJDK 7, il est venu avec Maven et vient de l'installer avant que je réalise que j'obtenais une offre deux pour un. Maintenant, j'ai JDK 7, Eclipse et Maven, et ils fonctionnent tous, mais je suis bloqué sur JDK 7 plutôt que 8.

J'ai vu qu'il y a un lien ci-dessous, j'ai l'intention de le vérifier le matin, il est 2h du matin et je suis fatigué en ce moment. Tout autre conseil pour ce nouveau numéro serait apprécié, sinon je vérifierai certainement ce lien dès le matin.

user2223059
la source
Quelle version d'Ubuntu utilisez-vous? Les deux dernières versions l'ont eu comme option d'installation.
Makoto
Le lien de Stephen va résoudre votre problème :)
Juned
Merci. Il est 2h du matin, donc je vais me coucher, mais je vais vérifier le lien dans la matinée. J'ai ajouté une modification à ma question avec un problème supplémentaire, si vous pouviez l'examiner, ce serait génial. Si le lien / réponse existant vous aidera aussi, je m'excuse d'être trop fatigué pour le regarder maintenant, je le vérifierai dans la matinée.
user2223059
Je suis sur ubuntu 14.10 je crois. Quelle que soit la version la plus récente à long terme.
user2223059

Réponses:

122

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 référentiel webupd8 à 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 la version installée:

# 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 êtes add-apt-repository: command not foundsûr d'avoir software-properties-commoninstallé:

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 de droits d'administrateur sur votre machine cible, votre pari le plus simple est d'utiliser sdkmanpour 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 Oracle officiel, bien que ce ne soit pas l'option par défaut. Voir 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écutez une commande avec le privilège de superutilisateur.

  • add-apt-repository <PPA_id> : Ubuntu (comme tous les dérivés Debian et en général toutes les distributions Linux) a un référentiel principal de paquets qui gèrent des choses comme les dépendances de paquets 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 est disponible uniquement via ce PPA ).

  • apt-get [install|update|upgrade|purge|...] : c'est "le" gestionnaire de paquet 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/javanous 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 dépôt webupd8.

Avec sudo apt-get updatenous mettons à jour le référentiel système (toutes ces opérations nécessitent des privilèges de superutilisateur, nous ajoutons donc sudo aux commandes).

sudo apt-get install oracle-java8-installer

  • update-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 mails, éditer un fichier texte ou fournir des exécutables java / javac ...). Pour le système permet de choisir l'outil favoris utilisateur donné une tâche spécifique à l' aide d' un mécanisme symlinks 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-oraclemettez à jour les liens symboliques sous / etc / alternatives pour pointer vers les exécutables java-8-oracle.

Suppléments:

  • man <command> : commencez à utiliser man pour lire une aide très bien écrite et détaillée sur (presque) chaque commande shell et ses options (chaque commande que je mentionne dans cette petite réponse a une page de manuel, essayez man update-java-alternatives).

  • apt-cache search <search_key> : interrogez 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ée ou non, description).

Giuseppe Ricupero
la source
Le problème est que j'obtiens un message "Impossible de localiser le package oracle-java8-installer". La même chose se produit lorsque j'essaie d'obtenir openjdk 8 en utilisant la commande sudo apt-get.
user2223059
2
Notamment, il s'agit (au moins étiqueté comme) de la version commerciale Oracle de java, et non de la version open community (openjre).
ThorSummoner
1
@basZero vous semble nécessaire d'installer des propriétés du logiciel: apt-get install software-properties-common. Je mettrai à jour le message en conséquence pour inclure cette exigence. Merci
Giuseppe Ricupero
1
Cette réponse n'est pas valide - oracle interdit les téléchargements directs du programme d'installation Java. sudo apt-get install oracle-java8-installer échoue
Alec Istomin
2
J'essaye de résoudre ce problème depuis 4 heures déjà. Merci pour cette solution géniale!
ickyrr
109

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, j'ai fait,

sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-8-jdk

Après, j'ai maintenant 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 les différentes versions)

  • exécutez la commande suivante à partir du 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 1et appuyez sur la Entertouche. Faites de même javacavec sudo update-alternatives --config javac,.

Vérifiez les versions pour confirmer la modification: java -versionet javac -version.

samsamara
la source
2
Très utile car je ne savais pas quel dépôt était nécessaire pour installer OpenJDK! Merci beaucoup.
cram2208
@ cram2208 heureux que vous ayez aidé. Merci pour le commentaire.
samsamara
Openjdk-r est-il suffisamment sûr pour le serveur?
Wang
Merci pour la réponse détaillée, cette solution fonctionne parfaitement pour moi.
Muddasir23
@ Muddasir23 heureux que cela ait été utile!
samsamara
13

J'obtiens OpenJDK 8 à partir des référentiels officiels Debian, plutôt que d'un PPA aléatoire ou d'un binaire Oracle non libre. Voici comment je l'ai fait:

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

Puis enfin faire l'installation:

sudo apt-get update
sudo apt-get -t jessie-backports install openjdk-8-jdk
Hans-Christoph Steiner
la source
1
Et finale enfin update-alternatives --config java ;-)
Javali
Merci beaucoup! C'est la seule solution qui a fonctionné pour moi (Deb 8)
3
sudo apt-get update
sudo apt-get  install openjdk-8-jdk

cela devrait fonctionner

Ahmed Emad
la source
Veuillez ajouter une explication de ce que cela ajoute aux réponses existantes.
Gert Arnold
J'utilisais le WSL2 de Windows et j'ai oublié de mettre à jour les packages avant d'installer OpenJDK et j'ai eu la même erreur. @GertArnold, la réponse de Zoe m'a aidé dans ce scénario.
pcdro
0

J'avais le même problème et j'ai essayé toutes les solutions sur cette page, mais aucune n'a fait l'affaire.

Ce qui a finalement fonctionné a été d'ajouter le universerepo à ma liste de repo. Pour ce faire, exécutez la commande suivante

sudo add-apt-repository universe

Après avoir exécuté la commande ci-dessus, j'ai pu exécuter

sudo apt install openjdk-8-jre

sans problème et le package a été installé.

J'espère que cela aide quelqu'un.

Daniel Black
la source
Je ne sais pas pourquoi j'ai été critiqué pour cette réponse. S'il y a quelque chose d'incorrect ou un problème potentiel, veuillez laisser un commentaire pour aider les autres et moi-même à mieux comprendre.
Daniel Black le
0

Après avoir ajouté le JDKréférentiel, avant l'installation, vous souhaiterez peut-être d'abord exécuter une mise à jour afin que le référentiel puisse être ajouté run apt update

puis continuez votre installation sudo apt install adoptopenjdk-8-hotspot

franck
la source