Bagaimana cara mengatur JAVA_HOME dengan benar pada CentOS?

8

Saya mencoba mengatur JAVA_HOME sehingga saya dapat menginstal Apache Solr dengan bantuan tutorial ini . Saya terhubung ke server saya menggunakan ssh dengan pengguna root

Untuk mengizinkan skrip sh yang berjalan menginstal Apache Solr:

mount | grep noexec

Pemasangan ulang sistem file dengan opsi exec:

mount -o remount,exec /dev/md1

Lalu setiap kali saya mencoba menginstalnya menggunakan perintah berikut

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

Saya mendapatkan pesan berikut:

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.

Inilah yang saya coba sejauh ini:

nano /root/.bash_profile 
nano /etc/profile

Saya menambahkan yang berikut ke file di atas di akhir dan menyimpannya

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

Itu tidak berhasil.

Saya membuat file /etc/profile.d/java.sh berikut dan memasukkannya:

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

Dan jalankan perintah berikut:

source java.sh

Itu juga tidak berhasil.

Saya mencoba menjalankan perintah berikut:

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

Tidak beruntung sama sekali.

Tetapi ketika menjalankan perintah berikut itulah yang saya dapatkan

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
Wakaf
sumber
Di mana masalahnya? Saya tidak melihat kesalahan java
sivann

Jawaban:

9

Anda ingin mengarahkannya ke JRE. Kembali ke sini, saya punya

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

Jika menggunakan bash, saya sarankan memasukkan ini /etc/bashrc(berbasis RH) atau /etc/bash.bashrc(berbasis Debian)

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:/bin/java::")
Rui F Ribeiro
sumber
Dengan asumsi Anda memiliki tautan untuk Java di sini. Ini lebih merupakan hal khusus Debian, silakan ubah sesuai untuk CentOS
Rui F Ribeiro
1
CentOS 7 di sini, berfungsi.
Jodka Lemon
1
Ini bekerja untuk saya hanya setelah menimpa JAVA_HOME di dalam/etc/bashrc
ovi
@ovi Saya menggunakan Debian, apa distro Anda?
Rui F Ribeiro
@RuiFRibeiro Centos 6.7. Mungkin perlu juga disebutkan yang /etc/bashrcsudah berisi berikut: export JAVA_HOME=/usr/local/jdk export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/classes.zip
ovi
2

Daripada menyalin file dari direktori instalasi, akan lebih baik untuk mengatur SOLR_JAVA_HOMEin /etc/default/solr.in.shke lokasi jrefolder di instalasi Anda sepertiusr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-0.b17.el6_7.x86_64/jre/

Sam
sumber
2

Saya membaca pertanyaan saya dan menemukan jawabannya. Inilah yang telah saya lakukan:

Saya telah membatalkan semua perubahan ke /root/.bash_profile dan / etc / profile

Kemudian saya membuat folder bernama jdk di folder / usr / local / seperti itu

mkdir /usr/local/jdk

Karena ini adalah jdk diharapkan untuk berada di. Kemudian saya menyalin file jdk ke newcp -R /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-0.b17.el6_7.x86_64 / jre / * / usr / local / jdk / folder seperti ini:

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

Sesederhana itu saya sekarang dapat menginstal Apache Solr

Wakaf
sumber
cp -R akan menghancurkan atribut, gunakan cp -a.
sivann
0

Dalam kasus saya setelah melakukan semua perubahan ini akan / etc / profile. Saya masuk

> source /etc/profile 

Ini berhasil untuk saya. Saya memeriksanya dengan -java -version

Dan juga mencerminkannya dengan > echo $JAVA_HOME

Tn. MANOJ KUMAR
sumber