Como configurar o JAVA_HOME corretamente no CentOS?

8

Estou tentando definir JAVA_HOME para poder instalar o Apache Solr com a ajuda deste tutorial . Estou conectado ao meu servidor usando ssh com usuário root

Para permitir que o script sh em execução instale o Apache Solr:

mount | grep noexec

Remontando o sistema de arquivos com a opção exec:

mount -o remount,exec /dev/md1

Sempre que tento instalá-lo, use os seguintes comandos

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

Recebo a seguinte mensagem:

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.

Isto é o que eu tentei até agora:

nano /root/.bash_profile 
nano /etc/profile

Adicionei o seguinte aos arquivos acima no final e os salvei

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

Isso não deu certo.

Criei o seguinte arquivo /etc/profile.d/java.sh e o coloquei:

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

E executou o seguinte comando:

source java.sh

Isso também não funcionou.

Eu tentei executar o seguinte comando:

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

Sem sorte alguma.

Mas quando um executar os seguintes comandos é o que eu recebo

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
fonte
Onde está esse problema? Não vejo nenhum erro de java
sivann 18/11/2015

Respostas:

9

Você deseja apontar para o JRE. De volta aqui eu tenho

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

Se estiver usando o bash, recomendo colocar isso em /etc/bashrc(baseado no RH) ou /etc/bash.bashrc(baseado no Debian)

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:/bin/java::")
Rui F Ribeiro
fonte
Supondo que você tenha um link para Java aqui. Esta é mais uma coisa específica Debian, por favor altere em conformidade para CentOS
Rui F Ribeiro
1
CentOS 7 aqui, funciona.
Jodka Lemon
1
Isso funcionou para mim somente após a substituição JAVA_HOME dentro/etc/bashrc
ovi
@ovi Estou usando o Debian, qual é a sua distribuição?
Rui F Ribeiro
@RuiFRibeiro Centos 6.7. Talvez também valha a pena mencionar o que /etc/bashrcjá continha o seguinte: export JAVA_HOME=/usr/local/jdk export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/classes.zip
ovi 23/02
2

Em vez de copiar a arquivos do diretório de instalação que seria melhor para definir o SOLR_JAVA_HOMEno /etc/default/solr.in.shpara o local da jrepasta na sua instalação comousr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-0.b17.el6_7.x86_64/jre/

Sam
fonte
2

Eu estava lendo minha pergunta e encontrei a resposta nela. Isto é o que eu fiz:

Desfiz todas as alterações em /root/.bash_profile e / etc / profile

Então eu criei uma pasta chamada jdk na pasta / usr / local / assim

mkdir /usr/local/jdk

Como é onde o jdk deve estar localizado, copiei os arquivos jdk para esse newcp -R /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-0.b17.el6_7.x86_64 / jre / * / usr / local / jdk / da seguinte maneira:

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

Tão simples como agora eu era capaz de instalar o Apache Solr

Waqleh
fonte
cp -R destruirá atributos, use cp -a.
Sivann
0

No meu caso, depois de fazer todas essas alterações, o / etc / profile. eu entrei

> source /etc/profile 

Funcionou para mim. Eu verifiquei com -java -version

E também refletindo com > echo $JAVA_HOME

Sr. MANOJ KUMAR
fonte