2012-08-23 2 views
7

JAVA_HOMEの正しいパスを特定するには、代わりの方法が使用されているため、Ubuntuシステムでは少し複雑です。私のマシンでは、これは実際のjavaまたはjavacに到達する前に、少なくとも2つのレベルの間接指定を作成する方法です。私は別のJavaを使用するための選択肢を更新した場合代替システムを使用するLinuxシステムでJAVA_HOMEの正しいパスは何ですか?

usr/bin/javac -> /etc/alternatives/ 

/etc/alternatives/java -> /usr/lib/jvm/jdk1.7/bin/javac 

私は/usr/lib/jvm/jdk1.7JAVA_HOMEを設定した場合、私のシステムのJavaは、Javaと矛盾になるかもしれないことは可能であるが、JAVA_HOMEによって指されます。

私の質問は、代替品を使用するシステムでJAVA_HOMEの正しい値は何ですか。私はJAVA_HOMEに「ビン」を追加し、それが必要とするすべての実行可能ファイルを見つけるだろう、JAVA_HOME/usr

この方法TOMCATまたはそれを使用する他のソフトウェアに設定する必要があることを考えると傾いています。

代替値を使用するシステムでは、これはJAVA_HOMEの正しい値ですか。ほとんどのソフトウェアはJAVA_HOMEを使用して実行ファイルを検索するだけですか、またはその値を使用して、JDKにバンドルされている他のアーティファクト(セキュリティポリシーfilなど)を検索しますか?前者が真の場合、私はをJAVA_HOMEに使うことができると感じますが、後者が真であれば、JAVA_HOMEを正しく使用する唯一の方法は代替機能を犠牲にすることです。

+0

私のCentOS 5.5システムを見ました:1)自分の環境のどこにでも$ JAVA_HOMEを定義していません2)/etc/tomcat5/tomcat5.confにはこの行があります:/ usr/lib/jvm/javaはシンボリックリンクです: '' java - >/etc/alternatives/java_sdk'、/ etc/alternatives/java_sdk 'java_sdk - >/usr/lib/jvm/java-1.4.2-gcj'のシンボリックリンクです。 – paulsm4

+0

はい、私は/ usr/lib/jvmの中の 'java'の代わりにUbuntuに 'default-java'を持っていますので、代替案とJavaの間にもう1つの層があるので、トリックは選択肢を全く心配しないと思います。 – Parag

答えて

5

良い質問 - 私はLinux上で「代替」を使用し、すべてが「うまくいく」 - 私はそれについて考える必要はありませんでした。私はこれが答えであると信じて

: "選択肢")

1は、あなたの "本当の" Javaは、現在設定されているものへのシンボリックリンクを設定し、 〜

2)必要なものすべてsymlinkに$ JAVA_HOMEが設定されています

+0

どのディストロはこれですか?私はDebian上にあり、代わりのものを使っていますが、/ usr/lib/jvm/default-javaはありません –

+0

興味深い答えです。最初にこのコメントを始めたのはなぜ、あなたが示唆していることがうまくいかないのかという説明です。しかし、私はそれをもっと思ったので、あなたが何を示唆しているのか理解していると思います。あなたは私が 'default-java'ディレクトリを作成し、それを使用したいJavaにシンボリックリンクする必要があると言っていますか?これに続いて、私のalternativesシステムを更新して、Java関連のバイナリをすべて 'default-java/bin'のものにするようにしてください。これは、代替とJavaの間にもう1つのレイヤーを追加することで問題を解決します – Parag

+0

ありがとうございます。私は私の代替案を使いこなしてしまったのでちょっと混乱していました。そして、JavaバイナリはもはやデフォルトのJavaを経由していませんでした。 – Parag

関連する問題