alternativesでjavaのversionを切り替える

2016年02月24日(編集2016年03月04日)
このエントリーをはてなブックマークに追加

javaには色々なversionが存在します。セキュリティのことを考慮すると、最新のjavaを利用するのが基本ですが、様々な理由から古いjavaを利用するケースもあると思います。また、同一マシンでversionを切り替えて運用したいケースもあると思います。

そういう場合に、alternativesを使えば、簡単にバージョンを切り替えることが可能です。

alternatives

alternatives は、同時にインストールされた、同機能を提供するソフトや、 バージョンの異なるソフトを管理するためのユーティリティです。
具体的には、ユーザが実際に使用するコマンド等はシンボリックリンクになっており、 そのシンボリックリンクの指す実体を切替えたり、候補一覧を出力したり、といったことを行います。

javaを切り替える

現在利用しているjavaのversionを確認します

terminal
[root@vagrant-centos65 ~]# alternatives --config java

There are 3 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
   1           /usr/lib/jvm/jre-1.8.0-openjdk.x86_64/bin/java
*+ 2           /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java
   3           /usr/lib/jvm/jre-1.5.0-gcj/bin/java

Enter to keep the current selection[+], or type selection number:
        

上記の環境では、2のopenjdk1.6.0を利用しているので、1のopenjdk1.8.0に切り替えます。

terminal
Enter to keep the current selection[+], or type selection number: 1
        

切り替えが終了したら、verisonのバージョンを確認します。

terminal
[root@vagrant-centos65 ~]# java -version
openjdk version "1.8.0_71"
OpenJDK Runtime Environment (build 1.8.0_71-b15)
OpenJDK 64-Bit Server VM (build 25.71-b15, mixed mode)
        

正常にjavaが切り替わりました。
以上です。

発展

環境変数JAVA_HOMEを設定する場合は、実態のpathが必要になります。
alternativesでjavaのバージョンを管理している場合は、readlinkコマンドで実体パスを読み取ることができます。

terminal
[vagrant@vagrant-centos65 ~]$ readlink /etc/alternatives/java | sed -e 's//bin/java//g'
/usr/lib/jvm/jre-1.8.0-openjdk.x86_64
        

関連記事

タグ検索で調べてみよう

Java CentOS / RHEL