OpenJDKへの乗り換え
Oracle JDKは個人利用や開発用途「以外」での無償利用は禁じられていて、有償サブスクリプションが必要です。ということで無償で会社で利用するときにはOpenJDKだな、ということを理解している人は増えていると思います。ただOpenJDK自体は公式サイトでビルドされていないので、WindowsでJavaを使う時にどうやって入手するのか?についてはいくつか方法があります。
その中でも、マイクロソフトが提供する「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だけではなく、MacOS、CentOS、Ubuntuにもインストールできますので、必要であればお試しください。
結構Javaの実行についてはもやっとしていたので良かったです。
追記
「IcedTeaよりOpenWebStartがいいよ」とTwitterで教えて頂きました。
ありがとうございます。
winget使うなら、Microsoft以外にもLiberica JDKやAdoptOpenJDKなど以前からあるけどなぁ。
— Takahiro YAMADA (@yamadamn) June 14, 2021
IcedTea-WebもJava 8までしか正式対応してないはずだから、Java 11以降でも使いたいのなら、OpenWebStartを使ったほうがよいと思う。https://t.co/vkE7j6Z9tL https://t.co/aEpie5A9ho
「Microsoft以外にもLiberica JDKやAdoptOpenJDKなど」であれば、以下でwingetで入りそう。
#winget install -e --id BellSoft.LibericaJDK11Full
#winget install -e --id AdoptOpenJDK.OpenJDK.11
OpenJDKも入れやすくなりましたね。