Edited at

Ubuntu Linux 18.04 LTS / 18.10でOpenJDK 11を使いたい


やりたいこと


  • Ubuntu Linuxで、OpenJDK 11を使いたい

  • パッケージ管理したいので、aptで導入したい


TL;DR

更新

2019年4月に、Ubuntu Linux 18.04 LTSでも、OpenJDK 11がaptでインストールできるようになりました。

openjdk-lts package

以降は、過去の情報になります。


  • 2018/11/19現在、Ubuntu Linux 18.10(Cosmic)であれば、openjdk-11-jdkでOpenJDK 11をインストール可能

  • Ubunutu Linux 18.04 LTS(Bionic)の場合…



    • aptでのインストールを諦めない場合


      • もう少し待つ

      • ちょっと古くて良ければPPAを使う

      • Ubuntu LinuxのLTSを諦めてよければ、Ubuntu Linux 18.10にアップグレードする




    • aptを諦める場合






対象のUbuntu Linuxのバージョン


  • 18.04 LTS以降


Ubuntu Linux 18.10(Cosmic)の場合

なんの問題もなくOpenJDK 11が入ります。

## OSバージョン

$ cat /etc/os-release
NAME="Ubuntu"
VERSION="18.10 (Cosmic Cuttlefish)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.10"
VERSION_ID="18.10"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=cosmic
UBUNTU_CODENAME=cosmic

## OpenJDK 11インストール
$ sudo apt install openjdk-11-jdk
$ java -version
openjdk version "11.0.1" 2018-10-16
OpenJDK Runtime Environment (build 11.0.1+13-Ubuntu-2ubuntu1)
OpenJDK 64-Bit Server VM (build 11.0.1+13-Ubuntu-2ubuntu1, mixed mode, sharing)


問題(Ubuntu Linux 18.04 LTS(Bionic)の場合)

Ubuntu Linux 18.04 LTSの場合、openjdk-11-jdkaptでインストールすると、以下のような状態になります。

## OSのバージョン

$ cat /etc/os-release
NAME="Ubuntu"
VERSION="18.04 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic

## OpenJDK 11インストール
$ sudo apt install openjdk-11-jdk
$ java -version
openjdk version "10.0.2" 2018-07-17
OpenJDK Runtime Environment (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.3)
OpenJDK 64-Bit Server VM (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.3, mixed mode)

openjdk-11-jdkとしたにも関わらず、OpenJDK 10がインストールされます。

これは、Ubuntu Linux 18.04 LTSのリリース時点でOpenJDK 11がリリースされていないため、OpenJDK 10をデフォルトにするようにしておき、後から差し替えるつもりのようです。

ですが、現時点でOpenJDK 11がリリースされてしばらく経過していますが、まだOpenJDK 10のまま、切り替えられていない模様。

では、Ubuntu Linux 18.04 LTSでaptでOpenJDK 11をインストールできないのかというと、どうしても…ということであればPPAを使うことでインストールできます。

“PPA for OpenJDK uploads (restricted)” team

以下、コマンド。

$ sudo add-apt-repository ppa:openjdk-r/ppa

$ sudo apt update
$ sudo apt install openjdk-11-jdk

やたら時間がかかるうえに、ちょっと古い、しかも謎なOpenJDK 11がインストールされます。

$ sudo apt install openjdk-11-jdk^C

$ java -version
openjdk version "11" 2018-09-25
OpenJDK Runtime Environment (build 11+24-Ubuntu-118.04)
OpenJDK 64-Bit Server VM (build 11+24-Ubuntu-118.04, mixed mode, sharing)

現時点だと、どうしてもUbuntu Linux 18.04 LTSでaptでOpenJDK 11をインストールする場合は、こういう手段になります。

か、もう少し待つか、Ubuntu Linux 18.10にアップグレードするかですね。


Ubuntu Linux 18.04 LTSを使いつつ、aptでのインストールを諦める場合

以下を参考にしつつ、AdoptOpenJDKなどをインストールしましょう。

Introduction to Java 11: Support and JVM Features #jjug

sdkmanでインストールしてもいいでしょう。


どうする?

個人的には、Ubuntu Linux 18.04 LTSのaptリポジトリにバックポートされるのを待つ所存。


参考情報

openjdk-lts package in Ubuntu

openjdk-lts 11.0.1+13-2ubuntu1 source package in Ubuntu

“PPA for OpenJDK uploads (restricted)” team

Anyone know when openjdk-11-jdk packages in Ubuntu Bionic / Cosmic Will Actually Point to Java 11?

OpenJDK SRU exception