CentOS6にjdk-1.8.0をインストールした話

CentOSにOpenjdk1.8.0をインストールしました。vinelinuxにインストールした時には圧縮ファイルをダウンロードして解凍して……という形式でやりましたが、今回はyum経由でインストールしました。

yum install java-1.8.0-openjdk

これで良いかと思ったんですが、javacコマンドが通りませんでした。どうやらjava-1.8.0-openjdk-develというパッケージに入っているようですので、そちらもインストールしました。

yum install java-1.8.0-openjdk-devel

これでインストールできましたが、このままではjavaコマンドは古いバージョンのjavaを参照していますので、alternatiesコマンドで切り替えます。

alternatives --config java
alternatives --config javac

alternativesコマンドを使えばそのコマンドが参照しているバージョンを切り替えることができます。

このalternativesコマンドを知るまではfindでコマンドの場所を探してシンボリックリンクを貼り替えて……という非常に面倒くさいことをしていましたが、これは楽ですね。

これでいいかと思ったんですが、この時点ではjavajre用のjavaになっています。正直僕はjre用のjavajdk用のjavaがどう違うのかよくわかっていませんけれども、jdkで開発するんだから、javajdk用のやつを使ったほうがいいのでは? という安直な考えでjdk用のjavaもalternativesに登録してみることにしました。

alternatives --install /usr/bin/java java /usr/lib/jvm/java-1.8.0-openjdk.x86-64/bin/java

上記は僕の環境での話ですが、要するに/usr/lib/jvm/java-1.8.0-openjdk.x86-64/bin/javajavaという管理名で(alternativesが管理する名前)で登録し、選択されたときに/usr/bin/javaシンボリックリンクを作成するという意味です。

この状態でalternatives --config javaを入力すると、

/usr/lib/jvm/java-1.8.0-openjdk.x86_64/bin/javaが候補に入っていることがわかります。これを選択してやると、javaコマンドを叩いたときにここを参照しに行くようになります。


ついでに$JAVA_HOMEも設定しておきます。

設定ファイルには.bash_profileとか.bashrcとかありますが、ログイン時に読み込んだ方がいいんじゃないかなー? という理由で.bash_profileに以下の文を追加しておきます。

exports JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk.x86-64


これで設定は完了です。動作確認をしてみます。

ちゃんと動きました!