CentOSでJAVA_HOMEを正しく設定する方法


8

このチュートリアルの助けを借りてApache Solrインストールできるように、JAVA_HOMEを設定しようとしていますrootユーザーでsshを使用してサーバーに接続しています

実行中の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

この問題はどこにありますか?Javaエラーが表示されない
sivann 2015年

回答:


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はここで動作します。
Jodka Lemon、2015

1
これは、内部でJAVA_HOMEを上書きした後にのみ機能しました/etc/bashrc
ovi

@ovi私はDebianを使用していますが、ディストリビューションは何ですか?
Rui Fリベイロ

@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_HOMEin /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へのすべての変更を元に戻しました

次に、/ usr / local /フォルダーにjdkというフォルダーを作成しました。

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をインストールできるようになりました


cp -Rは属性を破棄します。cp-aを使用してください。
sivann 2015年

0

私の場合、これらすべての変更を行った後、/ etc / profileを削除します。入った

> source /etc/profile 

それは私のために働いた。私はそれをチェックしました-java -version

そしてまたそれを反映して > echo $JAVA_HOME

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.