Comment trouver votre Java Home lors de l’exécution de plusieurs versions


  • FrançaisFrançais


  • Lorsque vous installez Java, cela fait partie du travail de l’installateur de dire à votre système où trouver la bonne langue quand c’est nécessaire. C’est pourquoi vous pouvez exécuter des applications Java. En fait, vous pouvez parfois exécuter des applications Java sans jamais savoir dans quel langage elles ont été écrites.

    En termes simples, cela fonctionne, tout comme lorsque vous installez Python pour exécuter une application Python, C pour exécuter une application écrite en C, etc.

    Mais que se passe-t-il lorsque vous installez plusieurs versions de Java sur votre système ? Dans ce cas, vous devrez assumer la responsabilité supplémentaire de comprendre où se trouve chaque version JAVA_HOME est situé.

    Le moyen le plus simple de résoudre ce problème consiste à utiliser SDKMan. Cependant, si vous ne disposez pas de SDKMan, vous devez le faire manuellement.

    Pourquoi vous pourriez vouloir plusieurs versions de Java

    Il y a plusieurs raisons pour lesquelles vous pourriez vouloir plus d’une version de Java sur votre ordinateur.

    • Les langages de programmation progressent à un rythme, tandis qu’une application peut se développer à un rythme différent. Il est possible que Java (le langage) incrémente son numéro de version alors que votre application préférée s’en tient à une version plus ancienne. Si vous avez deux applications indispensables, chacune utilisant une version différente de Java, vous pouvez installer les deux.

    • Les développeurs travaillent sur de nombreux projets différents, dont certains peuvent utiliser une ancienne version de support à long terme (LTS) de Java tandis qu’un autre utilise la dernière version.

    • Vous êtes peut-être sur un système pour lequel vous n’êtes pas autorisé à installer Java au niveau du système. Vous pouvez, à la place, exécuter Java à partir de votre répertoire personnel, mais cela signifie parfois que vous devez pointer les applications vers cet emplacement d’installation non standard.

    La variable JAVA_HOME

    Il est parfaitement acceptable d’avoir plus d’une version de Java installée, mais les applications peuvent ne pas savoir où trouver la version dont elles ont besoin.

    Normalement, une application utilise simplement ce que vous avez défini comme environnement d’exécution Java par défaut. C’est quelque chose que vous n’avez peut-être pas défini vous-même. Selon la distribution Linux que vous exécutez et la méthode que vous avez utilisée pour installer Java, votre système par défaut peut être la première version de Java que vous avez installée ou la plus récente.

    Quelle que soit votre valeur par défaut, si vous essayez de lancer une application et recevez ensuite une erreur concernant la version de Java que vous utilisez, même si vous savez que la bonne version est installée quelque part sur votre système, vous pouvez remplacer manuellement le réglage.

    Les applications peuvent dériver l’emplacement de Java à partir de votre session actuelle Variables d’environnement.

    Tout d’abord, jetez un oeil à quoi, le cas échéant, JAVA_HOME est défini sur actuellement :

    $ echo $JAVA_HOME

    S’il y a une sortie, votre ordinateur maintient un JAVA_HOME variable. S’il n’y a pas de sortie, votre ordinateur n’a pas défini cette variable. Cela ne signifie pas nécessairement que votre ordinateur n’a pas d’accueil Java, cela signifie simplement que rien n’a encore pris la peine de le configurer.

    Trouver la bonne version

    Avant de pouvoir régler JAVA_HOME, vous devez savoir quel Java vous souhaitez utiliser. Le Java que vous devez utiliser dépend de l’application que vous essayez d’exécuter. Si une application nécessite Java 8 pour s’exécuter, vous devez la faire pointer vers le bin répertoire contenant Java 8. Si une application nécessite Java 17 pour s’exécuter, vous devez la pointer vers le bin répertoire contenant Java 17.

    Vous pouvez trouver votre version Java par défaut actuelle avec le -version option. Lancez un terminal et tapez cette commande (omettez le $ invite de commande) :

    $ java -version

    Trouver le bon emplacement à partir d’un gestionnaire de packages

    Vous devez maintenant savoir où se trouve la version de Java que vous souhaitez utiliser.

    Si vous avez installé Java via un gestionnaire de packages, vous pouvez interroger votre gestionnaire de packages pour obtenir une liste de fichiers. Cela vous indique quels fichiers ont été installés avec ce paquet et où.

    Par exemple, sur Fedora, CentOS ou Mageia, vous pouvez lister tous les packages installés et grep pour voir uniquement les packages contenant la chaîne java:

    $ dnf list installed | grep java

    Pour une sortie encore plus propre, utilisez ok:

    $ dnf list installed | awk --field-separator=' ' '/java/{print $1;}'
    java-1.8.0-openjdk.x86_64
    java-1.8.0-openjdk-devel.x86_64
    java-1.8.0-openjdk-headless.x86_64
    java-11-openjdk.x86_64
    java-11-openjdk-devel.x86_64
    java-11-openjdk-headless.x86_64
    java-11-openjdk-src.x86_64
    javapackages-filesystem.noarch
    javapackages-tools.noarch
    tzdata-java.noarch

    Supposons que vous ayez besoin d’informations sur Java 8 (version 1.8).
    Vous pouvez voir chaque fichier dans les packages Java 8 en utilisant le rpm commander:

    $ rpm --query --all --list \
    java-1.8.0-openjdk* | grep bin/java$
    /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-2.el8_5.x86_64/jre/bin/java
    /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-2.el8_5.x86_64/bin/java

    Vous pouvez obtenir plusieurs résultats, mais examinez attentivement les chemins d’accès aux fichiers. Généralement, vous voulez juste l’exécutable Java dans le primaire bin répertoire de sa distribution Java.

    Dans cet exemple, le chemin vers Java 8 est :

     /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-2.el8_5.x86_64/bin

    Si vous utilisez un autre gestionnaire de packages, les commandes sont différentes, mais l’objectif reste le même. Consultez la documentation de votre gestionnaire de paquets pour plus de détails.

    Trouver le bon emplacement à partir d’une installation manuelle

    Si vous avez installé manuellement Java à partir d’un .tar archive (“tarball”), votre gestionnaire de paquets n’en a aucune trace. Heureusement, cependant, vous savez où vous l’avez mis, afin de trouver le chemin vers son JAVA_HOME est aussi simple que de lister le chemin absolu vers son bin annuaire.

    Voici comment je confirme que le répertoire qui, selon moi, devrait exister existe bel et bien :

    $ file /opt/jdk-1.8.0/bin

    Définir JAVA_HOME temporairement

    Vous connaissez maintenant l’emplacement de votre JAVA_HOME.

    Pour définir un JAVA_HOME variable temporairement, vous pouvez faire précéder la commande que vous souhaitez exécuter avec votre paramètre de variable. Par exemple, supposons que vous soyez sur un système sur lequel Java 8 et Java 11 sont installés. Java 8 a été installé à l’origine, mais vous avez téléchargé Java 11 car une nouvelle application intéressante que vous souhaitez essayer l’exige.

    Les variables d’environnement placées avant la commande que vous exécutez sont héritées par la commande :

    $ JAVA_HOME=/opt/jdk-1.8.0/bin coolNewApp

    Définissez JAVA_HOME de manière permanente avec la commande alternatives

    Pour définir une nouvelle version Java par défaut de manière permanente, utilisez le alternatives commander. le alternatives La commande examine les applications installées sur votre système Linux et vous permet de choisir la version à utiliser. Certaines distributions, telles que Slackware, ne fournissent pas de alternatives commande, vous devez donc utiliser la méthode d’installation locale à la place.

    Sur Fedora, CentOS, Mageia et les distributions similaires, la commande est alternatives.

    Sur Debian et Ubuntu et similaires, la commande est update-alternatives.

    Pour obtenir une liste des versions disponibles d’une application actuellement installée sur votre système Fedora :

    $ alternatives --list

    Sur Debian, vous devez spécifier l’application pour laquelle vous souhaitez des alternatives :

    $ update-alternatives --list java

    Pour choisir la version que vous souhaitez définir par défaut sur Fedora et les systèmes similaires :

    $ sudo alternatives --config java

    Sur les systèmes basés sur Debian :

    $ sudo updates-alternatives --config java

    Vous pouvez modifier la version Java par défaut selon vos besoins, en fonction de l’application que vous souhaitez exécuter.

    Choisissez votre Java

    Habituellement, vous n’avez pas à vous soucier de la confusion des applications lors de l’utilisation de Java, mais c’est un avantage de Java qu’il vous permet d’avoir différentes versions installées à la fois. Grâce à cette fonctionnalité, vous pouvez exécuter même les anciens logiciels qui n’ont pas été mis à jour vers la dernière version de Java, tout en exécutant les dernières applications Java.

    Cependant, avec cette flexibilité vient la responsabilité de comprendre comment guider les applications vers la bonne version. Maintenant vous savez comment.

    Si cette méthode semble demander beaucoup de travail, envisagez plutôt d’utiliser SDKMan.

    Source

    La Rédaction

    L'équipe rédactionnnelle du site

    Pour contacter personnellement le taulier :

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

    Copy code