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でコマンドの場所を探してシンボリックリンクを貼り替えて……という非常に面倒くさいことをしていましたが、これは楽ですね。
これでいいかと思ったんですが、この時点ではjavaはjre用のjavaになっています。正直僕はjre用のjavaとjdk用のjavaがどう違うのかよくわかっていませんけれども、jdkで開発するんだから、javaもjdk用のやつを使ったほうがいいのでは? という安直な考えで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/javaをjavaという管理名で(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
これで設定は完了です。動作確認をしてみます。
ちゃんと動きました!