JAVA_HOME
Ubuntu の値をOracleのJavaを指すように変更するにはどうすればよいですか?
java-6-sun
またはそれを指す必要がありjava-6-sun-1.6.0.24
ますか?
JAVA_HOME
Ubuntu の値を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
環境変数をシステムレベルでグローバルに設定する場合は、/etc/environment
ファイルに設定を使用する必要があります。
oracle-java7-set-default
パッケージが何をするかは、私には完全に不明確です。
グローバルかつシステムレベルで変更する場合は、
に
/etc/environment
この行を追加します。
JAVA_HOME=/usr/lib/jvm/java-7-oracle
$JAVA_HOME
このように使用すると解決しませんPATH=$JAVA_HOME/bin
。再起動を試みましたが、効果がありません。このファイルまたは自分のプロファイルに、export
またはそのset
JAVA_HOME
どちらかを置く必要がありますか?
OracleのJava SE開発キットをシステムのデフォルトのJavaとして設定するには、ここから最新のJava SE開発キットをダウンロードして、ファイルシステムの好きな場所にディレクトリを作成します。たとえば/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)
これを行うには、root権限が必要か、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をインストールしたと想定)。
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ランタイム環境)を指定できます。
JDKには、JREが持つすべてのものが含まれています。Javaプログラムを実行しているだけの場合は、JREまたはJDKのいずれかを指定できます。
JAVA_HOME
現在使用しているJavaに基づいて設定する必要があります。
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を設定するだけでは機能しない場合があります。
を使用sudo update-alternatives --config java
してデフォルトのJavaを設定する必要があります。
これを参照してください。走る
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を設定する必要がある場合もあります。この回答から使用できます
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の場合。
java -XshowSettings 2>&1 | grep -e 'java.home' | awk '{print "JAVA_HOME="$3}' | sed "s/\/jre//g" >> /etc/environment