Linuxを日常的に使う実験ブログ

Ubuntu 14.04にOpen JDK 8を導入する

 2015-06-30

 Ubuntu

こんにちは。今回のテーマは『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のバージョン 01 javacのバージョン 02

最後に

Java 8からjavaFXが標準GUIになったのでOpen JDK 8においてもopenjdkを導入すればSwingと同じようにGUI構築ができると思っていたのですが、まるで追加ライブラリのような別パッケージになっているのが少々意外でした。Oracle JDK環境でJavaFXを使用して書かれたコードのコンパイルにはopenjfxパッケージが必要なので注意してくださいね。 [adsense]