Comment trouver votre Java Home lors de l’exécution de plusieurs versions
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.
Contents
- Pourquoi vous pourriez vouloir plusieurs versions de Java
- La variable JAVA_HOME
- Trouver la bonne version
- Trouver le bon emplacement à partir d’un gestionnaire de packages
- Trouver le bon emplacement à partir d’une installation manuelle
- Définir JAVA_HOME temporairement
- Définissez JAVA_HOME de manière permanente avec la commande alternatives
- Choisissez votre Java
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.