UbuntuでJavaバージョンの切り替え方法

Android 5.1のビルド中にエラーが発生し、JDK 1.7.xが必要と判明しました。しかし、私のUbuntuには既にJava 1.8.0_362がインストールされています。以下はそのバージョン切り替えの手順です。

1. Java 1.7.0_80をダウンロード

Oracleの公式サイトからJava 1.7.0_80の圧縮ファイルを取得します。

<a href="https://www.oracle.com/java/technologies/javase/javase7-archive-downloads.html">Java SE 7 ダウンロードページ</a>

2. 圧縮ファイルを解凍

ファイルを /custom_disk/sdk_tools ディレクトリに配置して解凍します。

user@ubuntu:/custom_disk/sdk_tools$ ls -l
total 149952
drwxr-xr-x  4 root  root       4096 May 26 19:23 ./
drwxr-xr-x  6 root  root       4096 May 26 19:03 ../
-rwxr-xr-x  1 root  root  153530841 May 26 19:22 <strong>jdk-7u80-linux-x64.tar.gz*</strong>
drwxr-xr-x  8 uucp    143      4096 Apr 10  2015 <strong>java-se-1.7.0_80/</strong>

3. 現在のJavaバージョン確認

現在のJavaバージョン情報を確認するために以下のコマンドを実行します。

user@ubuntu:/custom_disk/sdk_tools$ sudo update-alternatives --display java
java - auto mode
  link best version is /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
  link currently points to /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
  link java is /usr/bin/java
  slave java.1.gz is /usr/share/man/man1/java.1.gz
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java - priority 1081
  slave java.1.gz: /usr/lib/jvm/java-8-openjdk-amd64/jre/man/man1/java.1.gz

4. Java 1.7.0_80への切り替え

優先度を1090に設定してJava 1.7.0_80に切り替えます。

sudo update-alternatives --install /usr/bin/java java /custom_disk/sdk_tools/java-se-1.7.0_80/jre/bin/java 1090

5. javac, javap, javadocも同様に切り替え

sudo update-alternatives --install /usr/bin/javac javac /custom_disk/sdk_tools/java-se-1.7.0_80/bin/javac 1090
sudo update-alternatives --install /usr/bin/javap javap /custom_disk/sdk_tools/java-se-1.7.0_80/bin/javap 1090
sudo update-alternatives --install /usr/bin/javadoc javadoc /custom_disk/sdk_tools/java-se-1.7.0_80/bin/javadoc 1090

6. 必要に応じてバージョン間の切り替え

必要に応じて各ツールのバージョンを切り替えることができます。

sudo update-alternatives --config java     # Javaバージョン間の切り替え
sudo update-alternatives --config javac    # javacバージョン間の切り替え
sudo update-alternatives --config javap    # javapバージョン間の切り替え
sudo update-alternatives --config javadoc  # javadocバージョン間の切り替え

7. JAVA_HOMEなどの環境変数設定

JAVA_HOMEやJRE_HOMEなどの環境変数を設定します。

export JAVA_HOME=/custom_disk/sdk_tools/java-se-1.7.0_80
export JRE_HOME=/custom_disk/sdk_tools/java-se-1.7.0_80/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH

8. 切り替えの確認

user@ubuntu:/# java -version
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)
user@ubuntu:/# javac -version
javac 1.7.0_80
user@ubuntu:/# javap -version
1.7.0_80

タグ: Ubuntu Java JDK update-alternatives

7月15日 00:59 投稿