¿Cómo configurar JAVA_HOME correctamente en CentOS?

8

Estoy tratando de configurar JAVA_HOME para poder instalar Apache Solr con la ayuda de este tutorial . Estoy conectado a mi servidor usando ssh con usuario root

Para permitir que el script sh en ejecución instale Apache Solr:

mount | grep noexec

Remontar el sistema de archivos con la opción de ejecución:

mount -o remount,exec /dev/md1

Luego, cada vez que intento instalarlo con los siguientes comandos

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

Me sale el siguiente mensaje:

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.

Esto es lo que intenté hasta ahora:

nano /root/.bash_profile 
nano /etc/profile

Agregué lo siguiente a los archivos anteriores al final y los guardé

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

Eso no funcionó.

Creé el siguiente archivo /etc/profile.d/java.sh y lo puse:

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

Y ejecutó el siguiente comando:

source java.sh

Eso tampoco funcionó.

Traté de ejecutar el siguiente comando:

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

Sin suerte en absoluto.

Pero cuando ejecuto los siguientes comandos, eso es lo que obtengo

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
fuente
¿Dónde está este problema? No veo ningún error de Java
sivann

Respuestas:

9

Quiere señalarlo al JRE. De vuelta aquí tengo

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

Si usa bash, recomiendo poner esto en /etc/bashrc(basado en RH) o /etc/bash.bashrc(basado en Debian)

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:/bin/java::")
Rui F Ribeiro
fuente
Suponiendo que tiene un enlace para Java aquí. Esto es más una cuestión específica de Debian, cambie en consecuencia para CentOS
Rui F Ribeiro
1
CentOS 7 aquí, funciona.
Jodka Lemon
1
Esto funcionó para mí solo después de sobrescribir JAVA_HOME adentro/etc/bashrc
ovi
@ovi Estoy usando Debian, ¿cuál es tu distribución?
Rui F Ribeiro
@RuiFRibeiro Centos 6.7. Tal vez también vale la pena mencionar que /etc/bashrcya contenía lo siguiente: export JAVA_HOME=/usr/local/jdk export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/classes.zip
ovi
2

En lugar de copiar los archivos a cabo desde el directorio de instalación que sería mejor para establecer el SOLR_JAVA_HOMEde /etc/default/solr.in.shla ubicación de la jrecarpeta en su instalación comousr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-0.b17.el6_7.x86_64/jre/

Sam
fuente
2

Estaba leyendo mi pregunta y encontré la respuesta en ella. Esto es lo que he hecho:

He deshecho todos los cambios en /root/.bash_profile y / etc / profile

Luego creé una carpeta llamada jdk en la carpeta / usr / local / así

mkdir /usr/local/jdk

Dado que esto es donde se espera que se encuentre el jdk. Luego copié los archivos jdk en ese nuevocp -R /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-0.b17.el6_7.x86_64 / jre / * / usr / local / jdk / carpeta así:

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

Tan simple como eso ahora pude instalar Apache Solr

Waqleh
fuente
cp -R destruirá los atributos, use cp -a.
sivann
0

En mi caso después de hacer todos estos cambios hasta / etc / profile. Entré

> source /etc/profile 

Funcionó para mi. Lo comprobé con ...java -version

Y también reflejándolo con > echo $JAVA_HOME

Sr. MANOJ KUMAR
fuente