130 votes

Comment installer openjdk 7 sur Ubuntu 16.04 ou plus ?

Je voudrais mettre à niveau mon système principal vers la version 16.04, mais je travaille sur des projets qui nécessitent OpenJDK 7.

Apparemment, il n'est pas disponible à partir d'un simple apt-get install openjdk-7-jdk . Seules les versions 8 et 9 sont répertoriées dans le référentiel.

Quelqu'un peut-il m'indiquer les instructions pour l'installer ?

153voto

onairda Points 2995

Avertissement de sécurité

Les paquets dans le PPA mentionné ci-dessous ne sont pas mis à jour avec la sécurité de sécurité de Java. Ne pas utiliser en production ; voir les réponses alternatives à la place.

Au moment de la rédaction, le dernier téléchargement pour OpenJDK 7 a été effectué 2016-04-22' avec la version 7u95 et toujours disponible en tant que 'latest'. Ubuntu 14.04 a été mis à jour en 7u181 .


MISE À JOUR : BIEN QUE CE SOIT LA RÉPONSE LA PLUS VOTÉE SON PROBABLEMENT PAS CELLE QUE VOUS VOULEZ UTILISER EN 2018 EN RAISON DU MANQUE DE MISES À JOUR DE SÉCURITÉ PAR CE PPA.

J'ai trouvé les instructions suivantes qui ont fonctionné pour moi :

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

Cela définit le "PPA for OpenJDK uploads (restricted)" comme un dépôt de paquetage supplémentaire, met à jour vos informations et installe le paquetage avec ses dépendances (depuis ce dépôt).

65voto

MDMower Points 838

Editer 22-Jul-2019 : Cette réponse ne fonctionne pas actuellement. Les paquets JDK référencés ci-dessous ne sont plus disponibles sur Debian Experimental. Dans tous les cas, ils sont en retard sur les paquets d'Ubuntu Trusty qui contiennent des mises à jour de sécurité plus récentes. Veuillez vous référer aux autres réponses jusqu'à ce que ce problème soit résolu (désolé, pas d'ETA).


Il ne semble pas que le responsable d'openjdk-r/ppa mettra à jour le paquet openjdk-7 au-delà de la version 7u95-2.6.4-3. La description de ce paquet "Copié de debian experimental dans l'archive primaire de Debian GNU/Linux" nous donne un indice sur la façon de gérer cela nous-mêmes, cependant.

Option 1 : Installation manuelle

  1. Téléchargez les paquets destinés à votre architecture :
    (pour la plupart des utilisateurs, cela signifie amd64 si 64 bits, ou i386 si 32 bits Ubuntu est installé)

  2. (Tenter d') installer les paquets en utilisant dpkg :

    Ubuntu 17.10 et antérieures :

    sudo dpkg -i openjdk-7-* libjpeg62-turbo* libfontconfig1* fontconfig-config*

    Ubuntu 18.04 et plus :

    sudo dpkg -i openjdk-7-* libjpeg62-turbo*
  3. Vérifiez la sortie de dpkg . S'il y avait des problèmes de dépendance - ce qui est probable - vous verrez ce qui suit (avec votre architecture remplacée par amd64) :

    Errors were encountered while processing:
    openjdk-7-jre:amd64
    openjdk-7-jre-headless:amd64
    openjdk-7-jdk:amd64

    S'il n'y a pas de problème de dépendance, c'est bon, vous avez terminé, passez au point 4. Sinon, si vous devez résoudre des problèmes de dépendance, vous pouvez le faire avec :

    sudo apt install -f

    Remarquez qu'il n'y a pas besoin de réexécuter dpkg après avoir laissé apt résoudre les dépendances. Il terminera automatiquement l'installation des paquets openjdk.

  4. Mise à jour des alternatives java. Vous pouvez visualiser toutes les versions de java installées avec update-java-alternatives --list . Pour activer OpenJDK Java 1.7, exécutez :

    sudo update-java-alternatives -s java-1.7.0-openjdk-amd64

    Vous remarquerez peut-être une erreur concernant le IcedTeaPlugin.so Le plugin n'est pas disponible. Ce n'est pas un réel souci pour les développeurs travaillant avec le JDK.

  5. Vérifiez que java fonctionne :

    java -version

    ce qui devrait donner quelque chose de similaire :

    java version "1.7.0\_161"
    OpenJDK Runtime Environment (IcedTea 2.6.12) (7u161-2.6.12-1)
    OpenJDK 64-Bit Server VM (build 24.161-b01, mixed mode)

Option 2 : Installation automatique (y compris les mises à jour avec apt )

Pinning peut être utilisé pour installer et mettre à jour openjdk-7-jdk et ses dépendances à partir des dépôts Debian.

  1. Créez un fichier d'épinglage qui indique apt pour ne prendre en compte que les paquets qui nous intéressent (nous ne voulons certainement pas que toute notre distribution Ubuntu soit "mise à jour" avec des paquets expérimentaux Debian).

    Créer un fichier /etc/apt/preferences.d/debian avec le contenu ci-dessous. Vous aurez besoin des privilèges de super-utilisateur, donc utilisez l'une des options suivantes sudo vim , sudo nano , gksudo gedit etc.

    Package: *
    Pin: release o=Debian,n=experimental
    Pin-Priority: -1
    
    Package: *
    Pin: release o=Debian,n=sid
    Pin-Priority: -1
    
    Package: openjdk-7-jdk
    Pin: release o=Debian,n=experimental
    Pin-Priority: 500
    
    Package: openjdk-7-jre
    Pin: release o=Debian,n=experimental
    Pin-Priority: 500
    
    Package: openjdk-7-jre-headless
    Pin: release o=Debian,n=experimental
    Pin-Priority: 500
    
    Package: libjpeg62-turbo
    Pin: release o=Debian,n=sid
    Pin-Priority: 500

    Pour Ubuntu 17.10 et les versions antérieures, ajoutez également ce qui suit (et voyez la note en bas) :

    Package: libfontconfig1
    Pin: release o=Debian,n=sid
    Pin-Priority: 500
    
    Package: fontconfig-config
    Pin: release o=Debian,n=sid
    Pin-Priority: 500
  2. Installez le trousseau de clés Debian :

    sudo apt install debian-archive-keyring

    Remarque : bien que ce soit la méthode la plus simple pour ajouter le trousseau de clés Debian, il se peut qu'elle ne soit pas à jour. Vérifiez que vous obtenez un résultat comme le suivant lorsque vous exécutez apt update à l'étape 4 :

    W: GPG error: http://cdn-fastly.deb.debian.org/debian experimental InRelease: The following signatures couldn't be verified because the public key is not available: NO\_PUBKEY 8B48AD6246925553 NO\_PUBKEY 7638D0442B90D010
    E: The repository 'http://httpredir.debian.org/debian experimental InRelease' is not signed.

    Si vous voyez cette erreur, alors ajoutez manuellement les clés nécessaires avec :

    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8B48AD6246925553
    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7638D0442B90D010

    donde 8B48AD6246925553 y 7638D0442B90D010 devrait correspondre aux pubkeys que vous voyez dans le message d'avertissement.

  3. Ajoutez les dépôts nécessaires :

    sudo add-apt-repository 'deb http://httpredir.debian.org/debian experimental main'
    sudo add-apt-repository 'deb http://httpredir.debian.org/debian sid main'

    Pourquoi ne pas utiliser un dépôt stable de Debian ? Vous rencontrerez des dépendances insatisfaisantes avec Debian stable. Les dépÃ?ts experimental (pour openjdk-7) et sid (pour libjpeg62-turbo, libfontconfig1, et fontconfig-config) sont plus indulgents avec les versions de dépendance.

  4. 更新情報 apt (attendez-vous à ce que cela prenne du temps car les listes de paquets de Debian sont volumineuses) :

    sudo apt update
  5. Installez openjdk-7-jdk :

    sudo apt install openjdk-7-jdk
  6. Mise à jour des alternatives java. Vous pouvez visualiser toutes les versions de java installées avec update-java-alternatives --list . Pour activer OpenJDK Java 1.7, exécutez :

    sudo update-java-alternatives -s java-1.7.0-openjdk-amd64

    Vous remarquerez peut-être une erreur concernant le IcedTeaPlugin.so le plugin n'étant pas disponible. Ce n'est pas un réel souci pour les développeurs travaillant avec le JDK.

  7. Vérifiez que java fonctionne :

    java -version

    ce qui devrait donner quelque chose de similaire :

    java version "1.7.0\_161"
    OpenJDK Runtime Environment (IcedTea 2.6.12) (7u161-2.6.12-1)
    OpenJDK 64-Bit Server VM (build 24.161-b01, mixed mode)

notes de fontconfig

libfontconfig1 y fontconfig-config doit être mis à niveau vers la version 2.12 ou ultérieure sur Ubuntu 17.10 et antérieures. Les paquets de mise à jour de Debian ne contiennent pas les personnalisations d'Ubuntu, de sorte que certaines applications affichent des polices laides avec ces paquets installés ; par exemple, Charles Web Debugging Proxy. Selon les programmes que vous utilisez, vous pouvez ou non être affecté par ce problème.

15voto

Vesa Nieminen Points 151

Vous pouvez télécharger un OpenJDK 7 d'Azul qui pourrait répondre à vos besoins. Ils ont tous deux une distribution DEB (pour le système de paquets) et une distribution ZIP. Je n'ai travaillé qu'avec la distribution ZIP.

http://www.azul.com/downloads/zulu/zulu-linux/

6voto

RN. Points 559

Utiliser des conteneurs

Il s'agit d'une réponse universellement valable sur la façon d'exécuter <outdated> logiciel supprimé sur <current> Ubuntu : conteneuriser votre application .

Par exemple, utilisez Docker et une ancienne image de base Ubuntu dans laquelle le logiciel que vous recherchez est toujours disponible/maintenu.

Cela fonctionne également dans l'autre sens ; essayez le logiciel sur une distribution Linux plus récente ou même autre sur votre Ubuntu stable en cours d'exécution.

Exemple pour Java 7 en utilisant Ubuntu 14.04

  1. Installez Docker - La version gratuite de Docker CE convient. Voir par exemple https://docs.docker.com/install/linux/docker-ce/ubuntu/ ou utiliser le docker.io dans les versions récentes d'Ubuntu.

  2. Dans un dossier vide, créez un fichier Dockerfile :

    FROM ubuntu:trusty
    RUN apt-get update \
        && apt-get install -y \
            openjdk-7-jdk \
        && rm -rf /var/lib/apt/lists/*
    
    ENTRYPOINT ["/usr/bin/java"]

    Ajoutez d'autres paquets dans cette commande si vous en avez besoin.

  3. Dans ce dossier, exécutez :

    docker build -t gertvdijk/java7 .
  4. Exécutez une commande dans un conteneur à usage unique en utilisant cette image Java 7 :

    Par exemple java -version :

    docker run --rm -it gertvdijk/java7 -version

    Sortie :

    java version "1.7.0_181"
    OpenJDK Runtime Environment (IcedTea 2.6.14) (7u181-2.6.14-0ubuntu0.1)
    OpenJDK 64-Bit Server VM (build 24.181-b01, mixed mode)
  5. En option, créez un wrapper pour plus de commodité.

    • Créer un fichier /usr/local/bin/java7-in-docker avec le contenu :

      #!/usr/bin/env sh -e
      
      DOCKER_IMAGE=gertvdijk/java7
      PWD="$(pwd)"
      
      exec docker run \
        --rm -it \
        -v ${PWD}:${PWD} \
        -v "/etc/passwd:/etc/passwd:ro" \
        -v "/etc/group:/etc/group:ro" \
        --user "$(id -u):$(id -g)" \
        --workdir "${PWD}" \
        "${DOCKER_IMAGE}" \
        $@

      Cela rendra le répertoire de travail actuel disponible à l'intérieur du conteneur - et non pas l'ensemble de votre système de fichiers, et cela usurpera l'identité de votre compte utilisateur local dans l'espace de noms du conteneur.

    • Marquez-le comme exécutable :

      sudo chmod +x /usr/local/bin/java7-in-docker
  6. Exécutez votre Java 7 de manière transparente, comme ceci :

    java7-in-docker -jar relative/path/to/some.jar

0voto

Teocci Points 3665

Installer Java 7 sur Ubuntu 16.04, Ubuntu 17.04

Il est recommandé d'installer Oracle Java parce qu'il est plus performant que OpenJDK . C'est pourquoi je souhaite proposer une alternative. Si vous voulez installer Oracle Java, exécutez les commandes suivantes dans le terminal pour l'installer à partir du PPA.

  1. Ajoutez les dépôts nécessaires :

    sudo add-apt-repository ppa:webupd8team/java
  2. 更新情報 apt cache et installer oracle-java7 :

    sudo apt update
    sudo apt install java-common oracle-java7-installer

    Au cours du processus d'installation, vous devrez accepter l'offre de l'entreprise. Licence Oracle accord. Une fois installé, nous devons définir les variables d'environnement Java telles que JAVA_HOME

  3. Corriger les variables d'environnement Java.

    sudo apt install oracle-java7-set-default
    source /etc/profile
  4. Vérifiez que java fonctionne :

    java -version

    ce qui devrait donner quelque chose de similaire :

    java version "1.7.0_80"
    Java(TM) SE Runtime Environment (build 1.7.0_80-u80)
    Java HotSpot(TM) 64-Bit Server VM (build 25.131-u80, mixed mode)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X