Ubuntu自体が現在のJava_HOME
を見つけるためのシステム全体の方法を提供するのか、またはJava_HOME
を設定するための適切な場所があるのかと思います。
Mac OS Xはこれでうまくいきます。/usr/libexec/Java_home
コマンドは現在のJava_HOME
を返します。しかし、Ubuntuに対して、私が見つけた資料は常に、$Java_PATH
が~/.bash_profile
に保存されている静的パスを指すように設定するように常に指示していました。
ただし、このアプローチにはいくつかの欠点があると思います。
update-alternatives
で変更した後、$Java_HOME
の.bash_profile
を変更する必要があります。その余分な作業は面倒です。$Java_HOME
必須プログラムは、.bash_profile
をまったく認識していません。起動スクリプトで$Java_HOME
を設定する必要があるため、$Java_HOME
を取得する標準的で簡単な方法が私にとって重要であると思われます。まあ、どんなアドバイスでも大歓迎です。ありがとう。
少しハッキーですが、この行を/etc/profile
システム全体に設定する場合:
export Java_HOME=$(dirname $(dirname $(readlink -e /usr/bin/javac)))
PAMによってセットアップされる/etc/environment
で環境変数を設定できます。マイナーリリースで変更されない/usr/lib/jvm
にもシンボリックリンクがあるはずです。
Java_HOME=/usr/lib/jvm/Java-6-Sun
User13742が承認したソリューションは、サーバーにJava=がインストールされていることを前提としています。これを多くのサーバーの集中スクリプトに追加すると、次のようなエラーが発生します。
dirname: missing operand
Try 'dirname --help' for more information.
これを回避し、サーバーにJava環境がある場合にのみJava_HOMEを設定するには、次のように少し拡張します。
if [ -f "$(which javac)" ]; then
export Java_HOME=$(dirname $(dirname $(readlink -e $(which javac))))
fi
SimonBからの変更を組み込んで、which
を使用してインストール先を検索しました。
「Java」コマンドを呼び出せることが確かな場合、これでうまくいきませんか?
export Java_HOME=$(dirname $(Java -XshowSettings:properties -version 2>&1 | grep 'Java\.home' | awk '{ print $3 }'))
パスシステムプロファイルの設定
システムパスファイル/ etc/profileを編集します
Sudo gedit /etc/profile
最後に次の行を追加
Java_HOME=/usr/lib/jvm/jdk1.7.0
PATH=$PATH:$HOME/bin:$Java_HOME/bin
export Java_HOME
export JRE_HOME
export PATH
http://javaandme.com/ の場合、完全なインストールガイド。