Debian / UbuntuでJAVA_HOMEを特定する方法は?


95

Ubuntuでは、同時に複数のJVMを使用できます。でデフォルトのものが選択されupdate-alternativesます。しかし、これはdebian policyのJAVA_HOMEため、環境変数を設定しません。

Javaアプリケーションを起動するランチャースクリプト(bash)を書いています。このJavaアプリケーションにはJAVA_HOME環境変数が必要です。では、現在選択されているJVMのパスを取得する方法はupdate-alternatives

回答:


137

JREの場合、次のようなものがトリックを行うはずです。

JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")

17
JREではなくJDKのホームが必要でしたが、次を使用して取得しました:JAVA_HOME = $(readlink -f / usr / bin / javac | sed "s:bin / javac ::")ありがとうございます!
Witek

私は、コマンドをしようとしたときecho $(readlink -f /usr/bin/java | sed "s:bin/java::")、出力はし/usr/lib/jvm/java-7-oracle/jre/ない/usr/lib/jvm/java-7-oracle/
スミットRamteke

与えられたコードrsaddeyは正しく動作
スミットRamteke

43

danadamのソリューションを簡単に採用して、必要に応じてJDK(JREではない)パスを取得できます。

JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
  • JDKに含まれる(JREではなく)javac Javaコンパイラ(javaの代わり)を探します。
  • 末尾の/はありません(s:bin ...の代わりにsed s:/ bin ...で削除されます)

12

export JAVA_HOME=$(dirname $(dirname $(readlink -f /usr/bin/java)))

中には.bashrc私のために便利でした。


9

それで、あなたはこのコマンドがあなたのために何もしないと言っているのですか?

sudo update-alternatives --config java 

2
JAVA_HOMEを設定することを想定していますか?update-alternativesはすべてのJava関連の選択肢を更新するわけではないので、update-java-alternativesがJavaを更新するより良い方法であることがわかりました。参照してくださいaskubuntu.com/questions/141791
ジェームズ・マクマホン

確かに、update-alternativesはあるがupdate-java-alternativesがインストールされていないLinuxのインスタンスに遭遇しました。
djangofan 14年

3

javaをインストールしました

sudo apt-get install openjdk-7-jre-headless

そして、場所を見つけるために

ls -al /etc/alternatives/java

2

ダナダムの答えの拡張として:

まず、3番目のjavaオプションとして2番目のJava JREを優先度「3」でインストールします。

sudo alternatives --install /usr/lib/jvm/jre jre /opt/IBM/java/jre/bin/java 3

次に、それらをリストできます。

update-alternatives --list java

これを使用して、代替を手動で設定できます。

sudo alternatives --config java /opt/IBM/java/jre/bin/java

その後、スクリプトは次のようにオンザフライで設定できます。

sudo alternatives --set java /opt/IBM/java/jre/bin/java
JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")

これは、「sed」コマンドの実行内容をよりよく示しています。javawやjavacなどのリンクも設定する必要がありますが、それぞれ個別に設定します。


1

しばらく前に、Ubuntuフォーラムで、Java Webサイトから最新のJRE / JDKをインストールする方法に関するチュートリアルを作成しました。また、JRE / JDKの場所をPATH変数に追加して、システム全体で有効にする方法についても説明します。必要に応じて、トピックの最後に記載されているスクリプトにJAVA_HOMEを追加することもできます。

それをチェックしてください:http : //ubuntuforums.org/showthread.php?t=1437100


1

javaがupdate-alternativesPATH変数を使用して構成されているか、PATH変数に手動で追加されている場合、ハードコーディングする"/usr/bin/java"必要はありません。.bashrcでこのソリューションを使用します。

export JAVA_HOME=$(readlink -m $(which java)/../..)

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