44 votes

Quelle est la valeur de JAVA_HOME pour CentOS?

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à !

61voto

mblsha Points 305

En fait, je l'ai trouvé,

c'est /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/. J'ai découvert ce que c'était en faisant update-alternatives --display java et cela m'a montré le répertoire /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java

20voto

ilitirit Points 4636

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

3voto

Kyle Brandt Points 81077

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.

2voto

prashant Points 121

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

2voto

HankCa Points 141

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.

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