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


8

Ubuntu自体がシステム全体で最新情報を見つける方法を提供しているJAVA_HOMEか、設定するための適切な場所があるかどうか、私は疑問に思いますJAVA_HOME

Mac OS Xはこれでうまくいき/usr/libexec/java_homeますJAVA_HOME。なぜならcommandは現在のを返します。しかし、Ubuntuに対して、私が見つけた資料は常に、$JAVA_PATHポインティングをに保存されている静的パスに設定するように指示しています~/.bash_profile

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

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

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

回答:


6

少しハッキーですが、/etc/profileシステム全体に設定するためにこの行を入れてください:

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

一部のシステム管理者はPATHをいじるのが好きなので、/ usr / binが必ずしも最初に表示されるわけではありません。あなたは、あなたが実際に実行されるバージョンのパスを拾っているように、より良い再ハックであってもよい: export JAVA_HOME=$(dirname $(dirname $(readlink -e $(which javac))))
SimonB

これは、パスが存在する場合に機能します。Javaがインストールされていないシステムでサイレントにする方法はありますか?
greggles、2015

Macでこれを行う方法?「readlink -e」は機能しません。
Artanis Zeratul

1

/etc/environmentPAMによって設定される環境変数をで設定できます。/usr/lib/jvmマイナーリリースで変更されないシンボリックリンクも必要です。

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

0

パスシステムプロファイルの設定

システムパスファイル/ 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/を参照してください。


0

「java」コマンドを呼び出せることが確かな場合は、これでうまくいきませんか?

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

OPは$JAVA_HOME、現在のシェルだけでなく、システム全体に設定する方法を探しています。
Celada、2015

0

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で、インストールの場所を見つけるために使用しました。


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