web-dev-qa-db-fra.com

Quand et pourquoi utiliser des alternatives --installe Java jar javac javaws lors de l'installation de jdk sous linux

Pour installer Java sous Linux (j'ai utilisé CentOS, RHEL est pareil aussi), j'ai utilisé cette commande

rpm -Uvh /path/to/binary/jdk-7u55-linux-x64.rpm

et vérifié Java

Java -version

En regardant un tutoriel, il est dit d’exécuter 4 commandes, sans savoir pourquoi.

## Java ##
alternatives --install /usr/bin/Java java /usr/Java/latest/jre/bin/Java 200000
## javaws ##
alternatives --install /usr/bin/javaws javaws /usr/Java/latest/jre/bin/javaws 200000

## Install javac only
alternatives --install /usr/bin/javac javac /usr/Java/latest/bin/javac 200000
## jar ##
alternatives --install /usr/bin/jar jar /usr/Java/latest/bin/jar 200000

Je sais que si plusieurs versions de Java sont installées, vous pouvez sélectionner la version à utiliser.

alternatives --config Java

alors pourquoi exécuter alternative --install séparément pour chaque exécutable.

J'ai vu ceci question mais je ne reçois pas ma réponse

9
Charu Khurana

Lorsque vous installez JDK sur Linux, sa mise en place dépend du type de package, de la version et de la distribution. Vous pouvez vous référer aux liens suivants pour obtenir des informations sur l'emplacement d'installation sur linux:

Installation du JDK pour les plateformes Linux - Version 8

Installation du JDK pour les plateformes Linux - Version 7

Une fois que vous avez installé JDK, il est possible que le dossier bin contenant des outils ne soit pas ajouté à la variable d'environnement PATH. Les commandes tapées sur le terminal doivent provenir des emplacements spécifiés dans la variable PATH. Dans les cas où JDK\bin n'est pas ajouté, l'utilisateur devra le configurer manuellement comme indiqué dans Installation du logiciel JDK

La commande alternatives est utilisée pour créer un lien symbolique. Ici, il est recommandé d'utiliser la commande pour ajouter les outils tels que javac, javaw à /usr/bin qui existent par défaut dans la variable PATH.

Si (vous pouvez exécuter Java -version en dehors de JDK/bin && non en spécifiant le chemin complet && si la version et le paquet sont identiques à ceux du paquet que vous avez installé) {vous n'avez pas besoin d'exécuter la commande alternatives.}

7
James Jithin

Java, javaws, javac et jar sont tous des exécutables différents utilisés par le JDK. Lorsque vous exécutez alternatives --config Java, vous ne configurez que la version de l'exécutable Java à exécuter. Cependant, le JDK inclut, par exemple, le compilateur javac. Vous devez également configurer la version du compilateur que vous souhaitez utiliser.

La commande alternatives est, en un mot, utilisée pour maintenir une recherche de liens symboliques (ou sym). Avant de pouvoir choisir la version de Java à exécuter avec l'option --configure, vous devez d'abord enregistrer le chemin d'accès réel à l'exécutable avec l'option --install. alternatives --install n'installe aucun logiciel. Il s'agit simplement d'enregistrer des chemins et des alias avec le cadre alternatives. (Remarque: alternatives n'utilise pas la commande alias. Je veux dire "alias" dans le sens traditionnel du terme, littéral.)

Vous devez également comprendre le rôle de la commande rpm. En réalité, il ne fait que déposer un ensemble de fichiers binaires dans un répertoire particulier. Ce répertoire peut être long et fastidieux à spécifier explicitement: /some/path/to/lib/jvm/Java-1.x.x-etc-etc-x86/jre/bin/Java. Vous ne voulez pas spécifier cela chaque fois que vous voulez exécuter Java. Au lieu de cela, nous avons mis en place des liens sym.

Vous voudrez peut-être aussi vous renseigner sur le fonctionnement de la PATHdans linux .

Cela peut devenir plus clair si vous essayez de suivre la configuration de votre machine. Voici ce que j'ai couru:

> which Java
/usr/bin/Java
> ls -l /usr/bin/Java
lrwxrwxrwx 1 root root 22 Aug 14  2014 /usr/bin/Java -> /etc/alternatives/Java
> ls -l /etc/alternatives/Java
lrwxrwxrwx 1 root root 73 Aug 14  2014 /etc/alternatives/Java -> /usr/lib/jvm/Java-1.7.0-openjdk-1.7.0.65-2.5.1.2.fc19.x86_64/jre/bin/Java
4
djs

Pour obtenir une version différente de Java JRE/JDK par défaut dans votre système d'exploitation:

Sudo alternatives --install /usr/bin/Java java [path_to_Java_bin] 1 

Exemple dans mon cas était:

Sudo alternatives --install /usr/bin/Java java /usr/Java/jdk1.7.0_80/bin/Java 1 

Ensuite, lancez une configuration pour sélectionner la version Java alternative:

 Sudo /usr/sbin/alternatives --config Java

Choisissez 1,2 ou l'option que vous désirez

Puis vérifiez les modifications en faisant:

Java -version
0
cepix

Ces scripts "alternatifs" et outils similaires ne font que créer des liens symboliques entre les fichiers binaires de la version JDK souhaitée et les répertoires qu’ils sont censés être. C'est fait pour toutes les commandes qui devraient être disponibles sur votre ligne de commande.

La définition de "tout" dépend de votre distribution.

0
Rostislav Matl