Ubuntu で $JAVA_HOME を設定または取得するシステム全体の方法はありますか?

Ubuntu で $JAVA_HOME を設定または取得するシステム全体の方法はありますか?

Ubuntu 自体がシステム全体で現在の値を見つける方法を提供しているのかJAVA_HOME、それとも設定するための適切な場所があるのか​​疑問に思いますJAVA_HOME

Mac OS X はこの点では優れています。/usr/libexec/java_homeコマンドは現在の を返しますJAVA_HOME。 しかし、Ubuntu の場合、私が見つけた資料では常に を$JAVA_PATHに保存されている静的パスに設定するように指示されていました~/.bash_profile

しかし、このアプローチにはいくつかの欠点があると思います。

  1. Java が更新されると、ミニバージョン番号が変更され、静的パスは使用できなくなります。
  2. システムで使用されている JRE を で変更した後、をupdate-alternatives変更する必要があります。その余分な作業は面倒です。$JAVA_HOME.bash_profile
  3. いくつかの$JAVA_HOME必須プログラムはまったく認識されません。起動スクリプトで.bash_profile設定する必要があるため、標準的で簡単な方法で取得することが私にとっては重要です。$JAVA_HOME$JAVA_HOME

そうですね、どんなアドバイスでも歓迎します。ありがとう。

答え1

少しハッキーですが、/etc/profileシステム全体に設定するには次の行を追加します。

export JAVA_HOME=$(dirname $(dirname $(readlink -e /usr/bin/javac)))

答え2

で環境変数を設定できます。これは PAM によって設定されます。マイナー リリースで変更されない に/etc/environmentはシンボリック リンクも存在するはずです。/usr/lib/jvm

JAVA_HOME=/usr/lib/jvm/java-6-sun

答え3

「java」コマンドが確実に呼び出される場合は、これでうまくいくのではないでしょうか。

export JAVA_HOME=$(dirname $(java -XshowSettings:properties -version 2>&1 | grep 'java\.home' | awk '{ print $3 }'))

答え4

パスシステムプロファイルを設定する

システムパスファイル/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/完全なインストールガイドについては、こちらをご覧ください。

関連情報