Come impostare correttamente JAVA_HOME su CentOS?


8

Sto cercando di impostare JAVA_HOME in modo da poter installare Apache Solr con l'aiuto di questo tutorial . Sono connesso al mio server usando ssh con l' utente root

Per consentire allo script sh in esecuzione di installare Apache Solr:

mount | grep noexec

Rimontaggio del file system con l'opzione exec:

mount -o remount,exec /dev/md1

Quindi ogni volta che provo a installarlo usando i seguenti comandi

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

Ricevo il seguente messaggio:

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.

Questo è quello che ho provato finora:

nano /root/.bash_profile 
nano /etc/profile

Ho aggiunto quanto segue ai file sopra alla fine e li ho salvati

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

Non ha funzionato.

Ho creato il seguente file /etc/profile.d/java.sh e l'ho inserito:

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

Ed eseguì il seguente comando:

source java.sh

Anche quello non ha funzionato.

Ho provato a eseguire il seguente comando:

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

Nessuna fortuna a tutti.

Ma quando eseguo i seguenti comandi è quello che ottengo

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

Dov'è questo problema? Non vedo alcun errore Java
Sivann

Risposte:


9

Vuoi indicarlo al JRE. Di nuovo qui ho

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

Se usi bash, ti consiglio di metterlo in /etc/bashrc(basato su RH) o /etc/bash.bashrc(basato su Debian)

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:/bin/java::")

Supponendo che tu abbia un link per Java qui. Questa è una cosa specifica di Debian, per favore cambia di conseguenza per CentOS
Rui F Ribeiro,

1
CentOS 7 qui, funziona.
Jodka Lemon,

1
Questo ha funzionato per me solo dopo aver sovrascritto JAVA_HOME all'interno/etc/bashrc
ovi il

@ovi Sto usando Debian, qual è la tua distribuzione?
Rui F Ribeiro,

@RuiFRibeiro Centos 6.7. Forse vale anche la pena ricordare che /etc/bashrcgià conteneva quanto segue: export JAVA_HOME=/usr/local/jdk export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/classes.zip
ovi

2

Invece di copiare i file dalla directory di installazione, sarebbe meglio impostare l'ingresso SOLR_JAVA_HOMEnella /etc/default/solr.in.shposizione della jrecartella nell'installazione comeusr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-0.b17.el6_7.x86_64/jre/


2

Stavo leggendo la mia domanda e ho trovato la risposta. Questo è quello che ho fatto:

Ho annullato tutte le modifiche a /root/.bash_profile e / etc / profile

Quindi ho creato una cartella chiamata jdk nella cartella / usr / local / in questo modo

mkdir /usr/local/jdk

Dato che questo è dove dovrebbe trovarsi il jdk. Poi ho copiato i file jdk in quel newcp -R /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-0.b17.el6_7.x86_64 / jre / * / usr / local / jdk / cartella in questo modo:

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

Semplicemente ora sono stato in grado di installare Apache Solr


cp -R distruggerà gli attributi, usa cp -a.
sivann,

0

Nel mio caso dopo aver apportato tutte queste modifiche al profilo / etc / profile. Entrai

> source /etc/profile 

Ha funzionato per me. L'ho controllato con -java -version

E anche riflettendolo con > echo $JAVA_HOME

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.