[Ubuntu 13.10] Oracle Java SE Development Kit 7u45 (JDK 7u45)

スポンサーリンク

Oracle JDK7 と OpenJDK7 を共存させてみます.

環境

Ubuntu 13.10 (3.11.0-12-generic) Desktop 64bit

内容

Oracle JDK7 と OpenJDK7 を共存させてみます.

OpenJDK

まず,OpenJDK 7 をインストールします.

sudo apt-get install openjdk-7-jdk

パスを確認してみます.

which java

結果,

/usr/bin/java

バージョンを確認してみます.

java -version

結果,

java version "1.7.0_25"
OpenJDK Runtime Environment (IcedTea 2.3.12) (7u25-2.3.12-4ubuntu3)
OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode)

update-alternatives で,java の設定を確認してみます.

update-alternatives --config java

何も設定されていません.

There is only one alternative in link group java (providing /usr/bin/java): /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java
Nothing to configure.

Oracle JDK 7

Oracle Java SE の JDK をインストールします.

Java SE Downloads http://www.oracle.com/technetwork/java/javase/downloads/index.html からダウンロードします.
OS が 64bit なので,Linux x64 をダウンロードします.
拡張子が tar.gz のものをダウンロードします.
2013-10-26 時点,7u45 でした.

インストールのやり方の一例としては,

sudo chown root.root jdk-7u45-linux-x64.tar.gz
sudo tar zxvf jdk-7u45-linux-x64.tar.gz
sudo chown -R root.root jdk1.7.0_45

各々,/usr/java 等,適当なところに配置します.
デフォルトで使用したいものを /usr/java/default にシンボリックリンクを張ります.

sudo mkdir /usr/java
sudo mv jdk1.7.0_45 /usr/java/
sudo ln -s /usr/java/jdk1.7.0_45 /usr/java/default

/usr/java/default/bin/java を alternatives に登録します.

sudo update-alternatives --install /usr/bin/java java /usr/java/default/bin/java 100

update-alternatives で java の設定を行います.

sudo update-alternatives --config java

/usr/java/default/bin/java が追加されています.

There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      auto mode
  1            /usr/java/default/bin/java                       100       manual mode
  2            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      manual mode

Press enter to keep the current choice[*], or type selection number: 

1 を入力してみます.

update-alternatives: using /usr/java/default/bin/java to provide /usr/bin/java (java) in manual mode

java のパスを確認してみます.

which java

結果,

/usr/bin/java

java のバージョンを確認してみます.

java -version

結果,Oracle JDK が有効になっています.

java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)

以降,Oracle JDK の javac と OpenJDK の javac との切り替えは update-alternatives で行います.
Oracle JDK の切り替えはシンボリックリンクの張り替えで行うことができます.(例えば,将来 JDK8 をインストールする場合など)

同様に,/usr/java/default/bin/javac についても alternatives に登録します.

sudo update-alternatives --install /usr/bin/javac javac /usr/java/default/bin/javac 100

update-alternatives で 実際に使用する javac を選択します.

sudo update-alternatives --config javac

/usr/java/default/bin/javac が追加されています.

There are 2 choices for the alternative javac (providing /usr/bin/javac).

  Selection    Path                                         Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-7-openjdk-amd64/bin/javac   1071      auto mode
  1            /usr/java/default/bin/javac                   100       manual mode
  2            /usr/lib/jvm/java-7-openjdk-amd64/bin/javac   1071      manual mode

Press enter to keep the current choice[*], or type selection number: 

1 を入力してみます.

update-alternatives: using /usr/java/default/bin/javac to provide /usr/bin/javac (javac) in manual mode

javac のパスを確認してみます.

which javac

結果,

/usr/bin/javac

javac のバージョンを確認してみます.

javac -version

結果,

javac 1.7.0_45

以降,Oracle JDK の javac と OpenJDK の javac との切り替えは update-alternatives で行います.
Oracle JDK の切り替えはシンボリックリンクの張り替えで行うことができます.(例えば,将来 JDK8 をインストールする場合など)

.profile

~/.profile の設定をしておきます

vi ~/.profile

例えば,

# Oracle JDK
export JAVA_HOME=/usr/java/default
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar

設定を反映します.

source ~/.profile

CentOS

CentOS 6 や Scientific Linux 6 でも同様の手順でインストール可能ですが,update-alternatives コマンドではなく,alternatives コマンドになります.
また,.profile ではなく,.bash_profile になります.

CnetOS,SL では tar.gz だけではなく rpm でもインストールできますが,JDK7 と JDK6 の両方をインストールしようとすると conflict します.
よって,一方のバージョンの JDK しかインストールすることができませんでした.(何か方法があるのかもしれませんが)

Eclipse

Eclipse を使用している場合、Java のバージョンを変更した際には、Eclipse – Window – Preference – Compiler の Compiler compliance level の確認なり変更するなりします.
これを忘れると,プロジェクトの設定によっては java.lang.UnsupportedClassVersionError が発生する場合があります.

JavaUbuntu 13.10
スポンサーリンク
コピペワールド