web-dev-qa-db-fra.com

Ubuntu: OpenJDK 8 - Impossible de localiser le paquet

Je viens donc d’installer Ubuntu, et c’est la première fois que je travaille dans un environnement Linux, tenez donc compte de ma noblesse ici.

Quoi qu'il en soit, j'ai téléchargé le JDK Java 8 directement auprès d'Oracle, mais je comprends 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'essaie d'obtenir OpenJDK 8, je ne peux pas. Je colle la commande du terminal et le message d'erreur que je reçois ici, dans l'espoir d'obtenir des conseils. Encore une fois, très nouveau sur Linux, je suis sur ma première distribution Linux depuis moins d’une heure ici.

    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.

Modifier:

Donc, maintenant j'ai un nouveau problème. J'ai installé OpenJDK 7, il est venu avec Maven et vient d'être installé avant que je réalise que je recevais un contrat deux pour un. Maintenant, j'ai JDK 7, et Eclipse, et Maven, et ils travaillent 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 2 heures du matin et je suis fatigué pour le moment. Tout autre conseil pour ce nouveau numéro serait apprécié, sinon je vérifierai certainement ce lien dès le matin.

74
user2223059

UPDATE: installation sans privilèges root ci-dessous


Je vous conseille de ne pas installer manuellement les paquets 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, simplement pour éviter les problèmes de compatibilité (très sporadiques) (que j'ai déjà essayés il y a de nombreuses années, c'est certainement 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 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

Conditions requises

Si vous obtenez add-apt-repository: command not found assurez-vous que software-properties-common est installé:

Sudo apt-get install software-properties-common

Si vous utilisez une version plus ancienne Ubuntu:

Sudo apt-get install python-software-properties

Installation du JDK sans privilèges root

Si vous n'avez pas les droits d'administrateur sur votre machine cible, votre solution la plus simple est d'utiliser sdkman pour installer le fichier openjdk certifié zoulou:

curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk install Java

NOTE: 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écuter une commande avec le privilège de superutilisateur.

  • add-apt-repository <PPA_id>: Ubuntu (comme tous les dérivés de Debian et toutes les distributions Linux en général) a un référentiel principal de paquets qui gérer 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’une PPA (archive de paquet personnel) contenant généralement des paquetages non disponibles dans le système (comme Oracle jdk) ou des versions mises à jour des versions disponibles (exemple: LibreOffice 5 dans LTS est uniquement disponible via cette option). PPA ).

  • apt-get [install|update|upgrade|purge|...]: c'est "le" gestionnaire de package de ligne de commande utilisé pour manipuler l'état de chaque référentiel du 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 extraire également les informations sur les packages à partir du référentiel webupd8.

Avec Sudo apt-get update, nous mettons effectivement à 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 (version Java spécifique de update-alternatives ): dans Ubuntu, plusieurs packages fournissent les mêmes fonctionnalités (navigation sur Internet, compilation de mails, modification d'un fichier texte ou fourniture d'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 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 le résultat de cette commande:

    ls -l /etc/alternatives/Java*

Dans notre cas : Sudo update-Java-alternatives --set Java-8-Oracle met à 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 Je mentionne dans cette petite réponse une page de manuel, essayez man update-Java-alternatives).

  • apt-cache search <search_key>: interroge le cache APT pour rechercher un paquetage associé à la clé search_key fournie (peut être le nom du package ou un mot Word dans la description du package).

  • apt-cache show <package>: fournit les informations APT d'un paquet spécifique (version du paquet, installé ou non, description) .

107

Comme vous pouvez le constater, seul Java 1.7 est installé (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

Ensuite, 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 passer d'une version à l'autre)

  • lancez 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 constater, jdk 8 est ouvert. Pour passer à jdk 7, appuyez sur 1 et appuyez sur le bouton Enter clé. Faites de même pour javac aussi bien avec Sudo update-alternatives --config javac.

Vérifiez les versions pour confirmer le changement: Java -version et javac -version.

79
samsamara

Je reçois OpenJDK 8 des référentiels officiels Debian, plutôt que des PPA aléatoires ou des binaires Oracle non libres. 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

Enfin, faites l’installation:

Sudo apt-get update
Sudo apt-get -t jessie-backports install openjdk-8-jdk
14
Sudo apt-get update
Sudo apt-get  install openjdk-8-jdk

cela devrait marcher

1
Ahmed Emad