UbuntuのJava_HOME
の値をOracleのJavaを指すように変更するにはどうすればよいですか?
それはJava-6-Sun
またはJava-6-Sun-1.6.0.24
を指すべきですか?
私は次のように書いています。
export Java_HOME=/usr/lib/jvm/Java-7-Oracle
私の~/.bashrc
ファイルに。
/usr/lib/jvm/Java7-Oracle
は/usr/lib/jvm/Java-7-Oracle-[version number here]
を指すシンボリックリンクであるべきです。
これがシンボリックリンクである理由は、新しいバージョンのJVMがある場合、.bashrc
ファイルを更新する必要がないため、自動的に新しいバージョンを指すようにするためです。
Java_HOME環境変数をグローバルにシステムレベルで設定したい場合は、useを/ etc/environment fileに設定する必要があります。
あなたがそれをグローバルにそしてシステムレベルで変えたいと思うならば。
に
/etc/environment
この行を追加してください:
Java_HOME=/usr/lib/jvm/Java-7-Oracle
oracleのJava SE Development Kitをシステムのデフォルトとして設定するにはJavaから最新のJava SE Development Kitを here からダウンロードしてから、たとえば、/usr/Java
のように、ファイルシステム内の任意の場所のディレクトリで、そのディレクトリにダウンロードしたばかりのファイルを抽出します。
$ Sudo tar xvzf jdk-8u5-linux-i586.tar.gz -C /usr/Java
Java_HOME
環境変数を設定します:
$ Java_HOME=/usr/Java/jdk1.8.0_05/
$ Sudo update-alternatives --install /usr/bin/Java java ${Java_HOME%*/}/bin/Java 20000
$ Sudo update-alternatives --install /usr/bin/javac javac ${Java_HOME%*/}/bin/javac 20000
oracleのJavaがデフォルトのJavaとして設定されていることを確認します:
$ update-alternatives --config Java
次のようなものが得られます:
There are 2 choices for the alternative Java (providing /usr/bin/Java).
Selection Path Priority Status
------------------------------------------------------------
* 0 /opt/Java/jdk1.8.0_05/bin/Java 20000 auto mode
1 /opt/Java/jdk1.8.0_05/bin/Java 20000 manual mode
2 /usr/lib/jvm/Java-6-openjdk-i386/jre/bin/Java 1061 manual mode
Press enter to keep the current choice[*], or type selection number:
左側の数字の前のアスタリスクに注意してください。正しい数字が設定されていない場合は、数字を入力してEnterキーを押して正しい数字を選択してください。 Javaをテストします。
$ Java -version
次のようなメッセージが表示された場合は、行ってください。
Java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) Server VM (build 25.5-b02, mixed mode)
また、これを行うにはルート権限が必要な場合や、sudoersグループに属している場合があることに注意してください。このソリューションは、ubuntu 12.04とDebian wheezyの両方でテストしましたが、どちらでも動作します。
この環境変数をすべてのユーザーが利用できるようにし、システム起動時に次のものを/ etc/profile.d/Java.shに追加します(必要に応じて作成します)。
export JDK_HOME=/usr/lib/jvm/Java-7-Oracle
export Java_HOME=/usr/lib/jvm/Java-7-Oracle
その後、ターミナルで実行します:
Sudo chmod +x /etc/profile.d/Java.sh
source /etc/profile.d/Java.sh
私の2番目の質問です - それはJava-6-SunまたはJava-6-Sun-1.6.0.24を指すべきですか?
これは常にJava-7-Oracle
を指すようにする必要があります(最新のインストールされたものにリンクしている(UbuntuリポジトリからJavaをインストールし、Oracle.comからダウンロードできるようになったと仮定))。
Java 6
export Java_HOME=/usr/lib/jvm/Java-1.6.0-openjdk-AMD64
またはJava 7
export Java_HOME=/usr/lib/jvm/Java-1.7.0-openjdk-AMD64
何らかの開発をしているのなら、JDK(Java Development Kit)を指す必要があります。それ以外の場合は、JRE(Java Runtime Environment)を指すことができます。
JDKには、JREが持っているものすべてなどが含まれています。 Javaプログラムを実行しているだけであれば、JREかJDKのどちらかを指すことができます。
現在使用しているJavaに基づいてJava_HOME
を設定する必要があります。 readlink
は現在のJavaのシンボリックリンクの値を表示し、sed
はJREディレクトリに合わせて調整します。
export Java_HOME=$(readlink -f /usr/bin/Java | sed "s:bin/Java::")
Java_HOMEをJDKに設定したい場合は、さらに1つ上のフォルダに移動する必要があります。
export Java_HOME=$(readlink -f /usr/bin/Java | sed "s:jre/bin/Java::")
複数のJDKがインストールされているときに特定のバージョンのJavaを使用したい場合は、Java_HOMEを設定するだけでは機能しない場合があります。
デフォルトのJavaを設定するにはSudo update-alternatives --config Java
を使う必要があります。
https://askubuntu.com/questions/121654/how-to-set-default-Java-version を参照してください。
this を参照してください。走る
Sudo update-Java-alternatives --list
マシン上のすべてのJavaインストールを名前とディレクトリでリスト表示してから実行する。
Sudo update-Java-alternatives --set [JDK/JRE name e.g. Java-8-Oracle]
使用するJRE/JDKを選択します。
Javaタスクごとに異なるJDK/JREを使用したい場合は、update-alternativesを実行して一度に1つのJava実行可能ファイルを設定できます。走れます
Sudo update-alternatives --config Java[Tab]
設定可能なJavaコマンド(Java、javac、javah、javawsなど)を確認する。その後
Sudo update-alternatives --config [javac|Java|javadoc|etc.]
そのJavaタスク/コマンドを特定のJDK/JREに関連付けます。
いくつかのアプリケーションではJava_HOMEを設定する必要があるかもしれません:from this answer あなたは使うことができます
export Java_HOME=$(readlink -f /usr/bin/Java | sed "s:bin/Java::")
jREの場合
export Java_HOME=$(readlink -f /usr/bin/Java | sed "s:jre/bin/Java::")
jDK用です。