Как правильно установить JAVA_HOME на CentOS?

8

Я пытаюсь установить JAVA_HOME, чтобы я мог установить Apache Solr с помощью этого руководства . Я подключен к моему серверу, используя SSH с пользователем root

Чтобы разрешить запущенному сценарию sh установить Apache Solr:

mount | grep noexec

Перемонтирование файловой системы с опцией exec:

mount -o remount,exec /dev/md1

Затем каждый раз, когда я пытаюсь установить его с помощью следующих команд

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

Я получаю следующее сообщение:

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.

Это то, что я пробовал до сих пор:

nano /root/.bash_profile 
nano /etc/profile

Я добавил следующее в файлы выше в конце и сохранил их

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

Это не сработало.

Я создал следующий файл /etc/profile.d/java.sh и вставил в него:

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

И выполнил следующую команду:

source java.sh

Это тоже не сработало.

Я попытался выполнить следующую команду:

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

Не повезло вообще.

Но когда запускаю следующие команды вот что получаю

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
источник
Где эта проблема? Я не вижу ошибок Java
sivann

Ответы:

9

Вы хотите указать это на JRE. Вернувшись сюда, я имею

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

Если вы используете bash, я рекомендую добавить это /etc/bashrc(на основе RH) или /etc/bash.bashrc(на основе Debian)

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:/bin/java::")
Руи Ф Рибейро
источник
Предполагая, что у вас есть ссылка на Java здесь. Это больше относится к Debian, пожалуйста, измените соответствующим образом для CentOS
Rui F Ribeiro
1
CentOS 7 здесь, работает.
Йодка Лимон
1
Это сработало для меня только после перезаписи JAVA_HOME внутри/etc/bashrc
ovi
@ovi Я использую Debian, какой у тебя дистрибутив?
Руи Ф. Рибейро,
@RuiFRibeiro Centos 6.7. Возможно также стоит упомянуть, что /etc/bashrcуже содержалось следующее: export JAVA_HOME=/usr/local/jdk export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/classes.zip
ovi
2

Вместо того , чтобы переписывать файлы из каталога установки , было бы лучше , чтобы установить SOLR_JAVA_HOMEв /etc/default/solr.in.shк месту нахождения jreпапки в вашей установки , такие какusr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-0.b17.el6_7.x86_64/jre/

Сэм
источник
2

Я читал свой вопрос и нашел в нем ответ. Вот что я сделал:

Я отменил все изменения в /root/.bash_profile и / etc / profile

Затем я создал папку с именем jdk в папке / usr / local / следующим образом

mkdir /usr/local/jdk

Поскольку это место, где, как ожидается, будет находиться jdk. Затем я скопировал файлы jdk в этот newcp -R /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-0.b17.el6_7.x86_64 Папка / jre / * / usr / local / jdk / выглядит так:

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

Так просто, что теперь я мог установить Apache Solr

Waqleh
источник
cp -R уничтожит атрибуты, используйте cp -a.
Сиванн
0

В моем случае после внесения всех этих изменений в / etc / profile. Я вошел

> source /etc/profile 

Это сработало для меня. Я проверил это с -java -version

И также отражая это с > echo $JAVA_HOME

Г-н МАНОЙ КУМАР
источник