J'ai installé Java via yum sur CentOS, cependant un autre programme Java doit savoir quelle est la variable d'environnement JAVA_HOME. Je connais bien la configuration des variables d'environnement, mais à quoi dois-je la régler ? java
est installé dans /usr/bin/java
, il ne peut pas être là !
Réponses
Trop de publicités?Je ne suis pas tout à fait sûr mais si vous installez les RPMS normaux la valeur JAVA_HOME peut également être définie sur ceci :
/usr/java/default/
EDIT: Je viens de vérifier sur mon système domestique. J'ai créé ce fichier :
/etc/profile.d/java.sh
qui contient :
export JAVA_HOME=/usr/java/default/
et j'utilise la version officielle de Sun : jdk-1.6.0_12-fcs
EDIT: Voici comment j'ai configuré Java sur ma machine:
Installer Java
Téléchargez et installez Java JDK d'Oracle
Le rendre primaire
Assurez-vous que cette version de Java est utilisée au lieu de la version OpenJDK en utilisant les deux commandes suivantes :
Première
alternatives --install /usr/bin/java java /usr/java/default/bin/java 999999 \
--slave /usr/bin/keytool keytool /usr/java/default/bin/keytool \
--slave /usr/bin/rmiregistry rmiregistry /usr/java/default/bin/rmiregistry
Deuxième
alternatives --install /usr/bin/javac javac /usr/java/default/bin/javac 999999 \
--slave /usr/bin/jar jar /usr/java/default/bin/jar \
--slave /usr/bin/rmic rmic /usr/java/default/bin/rmic
Définir JAVA_HOME
Assurez-vous que tous les utilisateurs ont leur variable d'environnement JAVA_HOME définie sur la valeur correcte :
echo "export JAVA_HOME=/usr/java/default/" > /etc/profile.d/java_home.sh
Vous voulez définir JAVA_HOME comme l'emplacement racine du JDK ou du JRE, par exemple :
export JAVA_HOME=/usr/java/jdk1.3
Si le JDK (kit de développement) est installé, vous voulez probablement qu'il pointe vers cela, sinon utilisez le chemin JRE (Java Runtime Environment). Ensuite, vous voudrez peut-être définir votre variable d'environnement $PATH pour inclure également le répertoire bin :
export PATH=$PATH:/usr/java/jdk1.3/bin
Si vous utilisez Tomcat, vous devrez peut-être également définir CATALINA_HOME pour l'utilisateur Tomcat.
export CATALINA_HOME=/chemin/vers/tomcat
Pour définir ceci pour le système, vous voudrez modifier votre /etc/profile ou ajouter un fichier .sh dans le dossier /etc/profile.d. Pour un utilisateur particulier, vous pouvez le mettre dans les fichiers ~/.profile ou ~/.bash_profile de l'utilisateur.
Voici toujours parfaitement fonctionnel pour moi :
[user@base ~]$ locate bin/java
/usr/bin/java
/usr/bin/javac
/usr/bin/javadoc
/usr/bin/javaws
/usr/java/jdk1.6.0_31/bin/java
/usr/java/jdk1.6.0_31/bin/javac
/usr/java/jdk1.6.0_31/bin/javadoc
/usr/java/jdk1.6.0_31/bin/javah
/usr/java/jdk1.6.0_31/bin/javap
/usr/java/jdk1.6.0_31/bin/javaws
/usr/java/jdk1.6.0_31/jre/bin/java
/usr/java/jdk1.6.0_31/jre/bin/java_vm
/usr/java/jdk1.6.0_31/jre/bin/javaws
Cela signifie que je peux définir JAVA_HOME comme /usr/java/jdk1.6.0_31
J'ai considéré le problème de si l'on change la version de Java utilisée avec :
alternatives --config java
Alors tout JAVA_HOME
codé en dur va changer (au moins c'est ce qui se passe sur le Centos 6.6 sur lequel je suis actuellement). C'est-à-dire, il n'y a pas de /usr/java
.
Cela ne semble pas être la meilleure façon (sujet à l'échec) mais dans les 10 minutes que j'ai passées là-dessus, cela semble être le mieux.
Dans /etc/bashrc
, j'ai modifié le paramètre de JAVA_HOME
pour être :
export JAVA_HOME=$(alternatives --display java | grep current | sed 's/link currently points to //' | sed 's|/bin/java||')
Vous devez faire quelque chose de similaire sur MacOSX mais sans tout le grep
et le sed
pour extraire le résultat. Certainement alternatives
offre une solution tout aussi simple.
De toute façon, j'espère avoir aidé.
Mise à jour
Non, ça serait JRE_HOME
. Le JDK / SDK ne semble pas être aussi évident (je vais continuer à chercher).
Les alternatives
semblent uniquement concerner le JRE par défaut. Je renvoie à la réponse de @Niels ou tout simplement installer Java avec yum
et définir le JAVA_HOME sur cela (le truc est de trouver où cela a été installé !).
yum install java-1.8.0-openjdk-devel.x86_64
cd /usr/lib/jvm
J'ai remarqué que java_1.8.0
est un lien symbolique vers /etc/alternatives/java_sdk_1.8.0
et donc j'ai défini mon $JAVA_HOME sur /usr/lib/jvm/java_1.8.0
. Dans le /etc/bashrc
.
- Réponses précédentes
- Plus de réponses