Wie stelle ich JAVA_HOME unter CentOS richtig ein?

8

Ich versuche, JAVA_HOME so einzustellen , dass ich Apache Solr mithilfe dieses Tutorials installieren kann . Ich bin über ssh mit dem Root-Benutzer mit meinem Server verbunden

So lassen Sie das laufende sh-Skript Apache Solr installieren:

mount | grep noexec

Erneutes Mounten des Dateisystems mit der Exec-Option:

mount -o remount,exec /dev/md1

Dann versuche ich jedes Mal, es mit den folgenden Befehlen zu installieren

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

Ich erhalte die folgende Nachricht:

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.

Folgendes habe ich bisher versucht:

nano /root/.bash_profile 
nano /etc/profile

Ich habe den obigen Dateien am Ende Folgendes hinzugefügt und sie gespeichert

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

Das hat nicht funktioniert.

Ich habe die folgende Datei /etc/profile.d/java.sh erstellt und eingefügt:

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

Und führte den folgenden Befehl aus:

source java.sh

Das hat auch nicht funktioniert.

Ich habe versucht, den folgenden Befehl auszuführen:

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

Überhaupt kein Glück.

Aber wenn ich die folgenden Befehle ausführe, bekomme ich das

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
quelle
Wo ist das Problem? Ich sehe keine Java-Fehler
Sivann

Antworten:

9

Sie möchten es auf die JRE verweisen. Zurück hier habe ich

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

Wenn Sie bash verwenden, empfehle ich, dies in /etc/bashrc(RH-basiert) oder /etc/bash.bashrc(Debian-basiert) einzugeben.

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:/bin/java::")
Rui F Ribeiro
quelle
Angenommen, Sie haben hier einen Link für Java. Dies ist eher eine Debian-spezifische Sache, bitte ändern Sie entsprechend für CentOS
Rui F Ribeiro
1
CentOS 7 hier funktioniert.
Jodka Lemon
1
Dieser arbeitete für mich erst nach JAVA_HOME innen zu überschreiben/etc/bashrc
ovi
@ovi Ich benutze Debian, was ist deine Distribution?
Rui F Ribeiro
@RuiFRibeiro Centos 6.7. Vielleicht ist es auch erwähnenswert, dass /etc/bashrcbereits Folgendes enthalten ist: export JAVA_HOME=/usr/local/jdk export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/classes.zip
ovi
2

Anstatt Dateien aus dem Verzeichnis Installation kopieren würde es besser sein , die setzen SOLR_JAVA_HOMEin /etc/default/solr.in.shan die Stelle des jreim Installationsordner wieusr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-0.b17.el6_7.x86_64/jre/

Sam
quelle
2

Ich las meine Frage und fand die Antwort darin. Das habe ich getan:

Ich habe alle Änderungen an /root/.bash_profile und / etc / profile rückgängig gemacht

Dann habe ich so einen Ordner namens jdk im Ordner / usr / local / erstellt

mkdir /usr/local/jdk

Da sich hier das JDK befindet, wird erwartet, dass es sich in befindet. Dann habe ich die JDK-Dateien in das neue CCP -R /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-0.b17.el6_7.x86_64 kopiert / jre / * / usr / local / jdk / Ordner wie folgt:

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

So einfach konnte ich jetzt Apache Solr installieren

Waqleh
quelle
cp -R zerstört Attribute, benutze cp -a.
Sivann
0

In meinem Fall nach all diesen Änderungen bis / etc / profile. ich trat ein

> source /etc/profile 

Es hat bei mir funktioniert. Ich habe es überprüft mit -java -version

Und reflektiere es auch mit > echo $JAVA_HOME

Herr MANOJ KUMAR
quelle