orangeitems’s diary

クラウドで働くインフラエンジニアの日々の感想です(ほぼ毎日更新)。

「Microsoft Build of OpenJDK」はインストールも簡単で乗り換えに大変お勧めです

f:id:orangeitems:20210614124147p:plain

 

OpenJDKへの乗り換え

Oracle JDKは個人利用や開発用途「以外」での無償利用は禁じられていて、有償サブスクリプションが必要です。ということで無償で会社で利用するときにはOpenJDKだな、ということを理解している人は増えていると思います。ただOpenJDK自体は公式サイトでビルドされていないので、WindowsJavaを使う時にどうやって入手するのか?についてはいくつか方法があります。

その中でも、マイクロソフトが提供する「Microsoft Build of OpenJDK」がとても導入しやすかったのでご紹介します。

 

 

前提

本説明はWindows 10利用を前提とします。

ただし、後述しますが他のOSでもインストール可能です。

 

手順

1) Oracle JDKはアンインストールしておきます。

「設定 - アプリ」から事前にアンインストールしておいてください。

 

2) Microsoft Storeを開きます。

 

3)「アプリ インストーラー」で検索します。

 

4) もし、アプリインストーラーがローカルにインストールされていなければインストールしてください。

ちなみに、私の端末ではすでにインストールされていました。

 

5) GitHubより、最新のアプリインストーラーを更新します。

リンクはここです。下記をWebブラウザで開いてください。

Releases · microsoft/winget-cli · GitHub

Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.appxbundle」というプログラムを見つけて、ダウンロードしてください。

ダウンロードしたファイルを開いてください。

ポップアップが出るので、そのままインストールしてください。

これで「winget」というツールが使えるようになります。このツールは、Linuxで言うYumのように、パッケージを簡単にインストール/アンインストールできるようにするものです。

将来的にはアプリインストーラーに含まれる予定です。

 

6) PowerShellを開きます。

 

7) 「winget install Microsoft.OpenJDK.11」と入力してください。

なんとこれだけで、OpenJDK11のインストーラーが自動的に起動します。ポップアップが出ますので道なりに進んでください。

※公式の手順は下記です。

Install the Microsoft Build of OpenJDK | Microsoft Docs

なお、「winget install Microsoft.OpenJDK.16」とやれば、バージョン16もインストールできます。インストールできるのは11か16です。

 

インストールが完了すると、「C:\Program Files\Microsoft\jdk-11.0.11.9-hotspot」直下に置かれ、かつパスも自動的にbin配下に通ります。

 

>java -version
openjdk version "11.0.11" 2021-04-20
OpenJDK Runtime Environment Microsoft-22268 (build 11.0.11+9)
OpenJDK 64-Bit Server VM Microsoft-22268 (build 11.0.11+9, mixed mode)

みたいな感じです。

 

 

手順(補足)

なお、これまでOracle JDKで、jnlpファイル (Java WebStart アプリケーション)を開いていたのですが、OpenJDKには含まれていないので困りました。

こちらは、IcedTeaというRedHatが開始したプロジェクトにて移植したものを、AdoptOpenJDKがバイナリ化してくれており、これが使えます。

 

1) 以下のURLをWebブラウザで開いてください。

IcedTea-Web | AdoptOpenJDK - Open source, prebuilt OpenJDK binaries

 

2) 「Windows (MSI) x86_64 icedtea-web-1.8.4」というリンクを開きインストーラーをダウンロードします。

 

3) インストーラーを実行し、道なりに完了させます。

 

4) .jlnpファイルの実行プログラムを「C:\Program Files\IcedTeaWeb\WebStart\bin\javaws.exe」にひもづけます。

 

これでjlnpファイルをダブルクリックで実行することができます。

※「C:\Program Files\IcedTeaWeb\WebStart\bin\itweb-settings.exe」で実行時の動作をカスタマイズできます。

 

 

まとめ

ということで、Windows 10で、OpenJDKを使うなら一番これが簡単かなという方法をお勧めしました。wingetが将来標準になればコマンドライン一行でOpenJDKのインストールが完了するし、良い事づくめだなと。

また、Microsoftの公式ページを見ればわかる通り、Windows 10だけではなく、MacOSCentOSUbuntuにもインストールできますので、必要であればお試しください。

結構Javaの実行についてはもやっとしていたので良かったです。

 

 

追記

「IcedTeaよりOpenWebStartがいいよ」とTwitterで教えて頂きました。

ありがとうございます。

 

 

Microsoft以外にもLiberica JDKやAdoptOpenJDKなど」であれば、以下でwingetで入りそう。

#winget install -e --id BellSoft.LibericaJDK11Full

#winget install -e --id AdoptOpenJDK.OpenJDK.11

 

OpenJDKも入れやすくなりましたね。