Comment configurer correctement JAVA_HOME sur CentOS?

8

J'essaie de configurer JAVA_HOME pour pouvoir installer Apache Solr à l'aide de ce tutoriel . Je suis connecté à mon serveur en utilisant ssh avec l'utilisateur root

Pour autoriser le script sh en cours d'installation à installer Apache Solr:

mount | grep noexec

Remontage du système de fichiers avec l'option exec:

mount -o remount,exec /dev/md1

Ensuite, chaque fois que j'essaie de l'installer à l'aide des commandes suivantes

bin/install_solr_service.sh /tmp/solr-5.3.1.tgz

Je reçois le message suivant:

WARNING: /opt/solr-5.3.1 already exists! Skipping extract ...

Creating /etc/init.d/solr script ...
The currently defined JAVA_HOME (/usr/local/jdk) refers
to a location where Java could not be found.  Aborting.
Either fix the JAVA_HOME variable or remove it from the
environment so that the system PATH will be searched.
The currently defined JAVA_HOME (/usr/local/jdk) refers
to a location where Java could not be found.  Aborting.
Either fix the JAVA_HOME variable or remove it from the
environment so that the system PATH will be searched.
Service solr installed.

Voici ce que j'ai essayé jusqu'à présent:

nano /root/.bash_profile 
nano /etc/profile

J'ai ajouté ce qui suit aux fichiers ci-dessus à la fin et les ai enregistrés

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-0.b17.el6_7.x86_64
export PATH=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-0.b17.el6_7.x86_64/bin:$PATH

Ça n'a pas marché.

J'ai créé le fichier suivant /etc/profile.d/java.sh et je l'ai mis:

export JRE_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-0.b17.el6_7.x86_64/jre/
export PATH=$PATH:$JRE_HOME/bin

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-0.b17.el6_7.x86_64
export JAVA_PATH=$JAVA_HOME

export PATH=$PATH:$JAVA_HOME/bin

Et a exécuté la commande suivante:

source java.sh

Cela n'a pas fonctionné non plus.

J'ai essayé d'exécuter la commande suivante:

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-0.b17.el6_7.x86_64

Pas de chance du tout.

Mais quand je lance les commandes suivantes, c'est ce que j'obtiens

echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-0.b17.el6_7.x86_64
echo $PATH
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-0.b17.el6_7.x86_64/bin:/usr/local/jdk/bin:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-0.b17.el6_7.x86_64/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-0.b17.el6_7.x86_64/jre//bin:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-0.b17.el6_7.x86_64/bin:/usr/local/bin:/usr/X11R6/bin:/root/bin
Waqleh
la source
Où est ce problème? Je ne vois aucune erreur java
sivann

Réponses:

9

Vous voulez le pointer vers le JRE. De retour ici, j'ai

JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/jre/

Si vous utilisez bash, je recommande de le mettre dans /etc/bashrc(basé sur RH) ou /etc/bash.bashrc(basé sur Debian)

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:/bin/java::")
Rui F Ribeiro
la source
En supposant que vous ayez un lien pour Java ici. Ceci est plus spécifique à Debian, veuillez changer en conséquence pour CentOS
Rui F Ribeiro
1
CentOS 7 ici, fonctionne.
Jodka Lemon
1
Cela n'a fonctionné pour moi qu'après avoir remplacé JAVA_HOME à l'intérieur/etc/bashrc
ovi
@ovi J'utilise Debian, quelle est votre distribution?
Rui F Ribeiro
@RuiFRibeiro Centos 6.7. Peut-être vaut-il aussi la peine de mentionner qu'il /etc/bashrccontenait déjà ce qui suit: export JAVA_HOME=/usr/local/jdk export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/classes.zip
ovi
2

Plutôt que de copier des fichiers à partir du répertoire d'installation, il serait préférable de définir l'entrée SOLR_JAVA_HOMEdans /etc/default/solr.in.shl'emplacement du jredossier dans votre installation, tel queusr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-0.b17.el6_7.x86_64/jre/

Sam
la source
2

Je lisais ma question et y ai trouvé la réponse. Voici ce que j'ai fait:

J'ai annulé toutes les modifications apportées à /root/.bash_profile et / etc / profile

Ensuite, j'ai créé un dossier appelé jdk dans le dossier / usr / local / comme ça

mkdir /usr/local/jdk

Étant donné que c'est là que le jdk devrait se trouver. Ensuite, j'ai copié les fichiers jdk dans ce newcp -R /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-0.b17.el6_7.x86_64 / jre / * / usr / local / jdk / dossier comme ceci:

cp -R /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-0.b17.el6_7.x86_64/jre/* /usr/local/jdk/

Aussi simple que cela, je pouvais maintenant installer Apache Solr

Waqleh
la source
cp -R détruira les attributs, utilisez cp -a.
sivann
0

Dans mon cas, après avoir effectué toutes ces modifications, le fichier / etc / profile. Je suis entré

> source /etc/profile 

Ça a marché pour moi. Je l'ai vérifié avec -java -version

Et aussi le refléter avec > echo $JAVA_HOME

M. MANOJ KUMAR
la source