Ubuntu 14.04にOpen JDK 8を導入する
2015-06-30
こんにちは。今回のテーマは『Ubuntu 14.04にOpen JDK 8を導入する』です。少々話は変わりますが、Javaの開発元のSunを買収したOracleがGoogleを相手に起こした訴訟で米最高裁がGoogleの上訴を棄却したというCNET Japanの記事を興味深く読みました。 本件はAPIの著作権とフェアユースの問題をクローズアップした訴訟問題として有名であり、今回特にオープンな技術として浸透していたJavaについてOracleに有利な判決が出たことはオープンソース界にも影響を与えるのではと思っています。個人的にはOracleの主張も分かるのですが、Oracleがライセンスを主張すればするほどJava開発者を萎縮させJava離れの空気を醸成するのではと思っています。太陽と北風の話を思い出してしまいました。 【関連記事】 Ubuntuで使用するJavaを切り替える [adsense02] 【目次】 Ubuntu 14.04LTSでOpen JDK 8を使いたい Open Java 8をインストールする 使用するJavaを切り替える
Ubuntu 14.04LTSでOpen JDK 8を使いたい
Ubuntu 14.04LTSの公式リポジトリにOpen JDK 8がない
Java 8で開発を行いたい場合はOracle製JDKを導入するかOpen Java 8を導入するかの選択になると思いますが、残念ながらUbuntu 14.04LTSの公式リポジトリにはOpen JDK 8はありません。Open JDK 8が公式リポジトリに入れられるのは14.10(Utopic Unicon)からです。14.04LTSでUbuntuを使うためには非公式にリポジトリであるPPAを追加する必要があります。(もちろん自分でビルドする猛者はこの限りではありませんよ)
JavaFXを使いたい場合はご注意を
結論から言えばJavaFXを手軽に使いたい場合はOracle版JDK 8を導入する方が良いと思います。ご存知の通りOracle版JDK 8からはJavaFXはJavaの標準GUIとなりJDKに同梱されている状態となっているのでインストールするだけでJavaFXが使用可能です。 一方、Open JDK 8の方はUbuntuではopenjdk-8-jdkとopenjfxという二つのパッケージに分離しています。そしてJavaFXのオープンソース版であるopenjfxは2015年6月末時点ではPPAでも提供できていないようです。(いずれPPAからopenjfxが提供されるかもしれません)
Open JDK 8をインストールする
サードパーティリポジトリの追加
まずはPPA for OpenJDK uploads(restricted) TeamのPPAを追加します。以下のコマンドを実行します。
$ sudo apt-add-repository ppa:openjdk-r/ppa $ sudo apt-get update
openjdk-8-jdkのインストール
つづいてopenjdk-8-jdkをインストールします。以下コマンドを実行します。
$ sudo apt-get install openjdk-8-jdk
使用するJavaを切り替える
ここでjavaとjavacのバージョンを確認しておきましょう。以下コマンドを実行して確認します。
$ java -version $ javac -version
それぞれのコマンドに応じてjavaとjavacのバージョンが示されたと思います。もじ初めてjavaを導入した場合は1.8.0などのJava 8のバージョンが示されたと思います。それ以外のバージョンの場合は使用するJavaを切り替える必要があります。 以下コマンドで切り替えて行きましょう。
$ sudo update-alternatives —config java
現在使用可能なjavaの一覧が出るので数字を入力して選択肢ます。 javacについても設定をしておきましょう。
$ sudo update-alternatives —config javac
同様に数字でjavacのバージョンを選択肢ます。 最後にもう一度ヴァージョンを確認しておきましょう。これで以下のように出ればOpen JDK 8が利用可能です。 javaのバージョン javacのバージョン
最後に
Java 8からjavaFXが標準GUIになったのでOpen JDK 8においてもopenjdkを導入すればSwingと同じようにGUI構築ができると思っていたのですが、まるで追加ライブラリのような別パッケージになっているのが少々意外でした。Oracle JDK環境でJavaFXを使用して書かれたコードのコンパイルにはopenjfxパッケージが必要なので注意してくださいね。 [adsense]