Java言語で作られたプログラムを動かすために必要なJavaランタイム環境(JRE)およびJavaアプリケーションのビルドに必要なJava開発キット(JDK)は、もともとJavaを開発した開発元、Sun Microsystemsから無料で配布され、利用できるようになっていました。
ところが、SunはDBで有名なOracleに買収され、Javaの権利もすべてOracleに移りました。
Sunは自社のあらゆる製品の大部分を無償化、もしくはオープンソース化するなどのかなり大盤振る舞いで有名で、一方Oracleは基本的に製品を有償とする傾向が強い会社で有名でした。
どちらが良い会社なのか、というような議論は今回置いておくとして、つまりJavaがOracleによって管理されるようになってから、ある程度の有償化が予想されている状況となっていました。
そしてJava 9以降のバージョンでいままで公式バージョンとして無償配布されていたOracle 製のJREおよびJDKが企業での利用に関して有償化されました。
(正確には個人利用・開発用途(IDEのランタイムとしての使用や、Javaのビルド、動作のテストとしての利用)以外はライセンスが必要になる。)
Oracle Technology Network License Agreement for Oracle Java SE – Oracle
一方、オープンソース版のJava互換実行開発環境として、Open JDKというプロジェクトも以前から存在していたのですが、本家のJavaを企業に対して有償化する代わりに、Oracleはこちらのオープンソース版の方の開発にも協力すると約束をしており、公式のサポートは受けられないものの、こちらであれば企業でも無料で使用することができるようになっています。
今回は、Oracle版の本家Javaから、Open JDKに乗り換える方法をご紹介します。
まず最初に、本家版のJavaをアンインストールしておきます。
これをやっておかないと、優先的にこちらが呼ばれてしまう可能性があるためです。
次に、Open JDKの公式サイトから、Open JDKの本体をダウンロードします。
JDK 14.0.1 General-Availability Release – Open JDK
Buildsの項目にある、”Windows/x64″のzipファイルをダウンロードし、Cドライブ直下に解凍します。
すると、jdk-バーション番号
のフォルダがCドライブ直下に作られるかと思います。
ファイルの設置はこれで完了です。
次に、解凍したOpenJDKの実行ファイルにOSのパスを通します。
スタートメニューから
sysdm.cpl
と検索して開くと、”システムのプロパティ”が開きます。
ウインドウ内の”詳細設定”タブを開くと、右下に”環境変数”というボタンがあるのでクリックします。
すると、下の方にシステム環境変数というのがあるかと思います。
システム環境変数は、システム全体に適用される環境変数です。
従って、管理者権限が必要になります。
システム環境変数のうち、編集が必要なのは下の2項目です。
・JAVA_HOME(なければ新規作成)
・Path
まず、JAVA_HOMEには、先程解凍したOpenJDKのフォルダのパスを指定します。
指定したらOKをクリックします。
次に、jdkの実行ファイルのあるディレクトリをPathの方に設定しておきます。
可能であれば、パスの記述は一番上にしておいた方がトラブルは少ないようです。
これで準備完了です。
コマンドプロンプトやPowerShell、Javaアプリケーションなどを使用している場合は、一度開きなおして動作を確認します。
問題なく使用できればセットアップ完了です。
とまぁこんな感じで、本家版と比較すると自動で設定をやってくれないのでちょっとめんどくさいです(;´∀`)
上記のような手順をやりたくない…!という方はWindows用パッケージマネージャー”Chocolatey”を使用すると、OpenJDKをワンコマンドで全部設定してくれます。
Chocolateyをインストールしてあれば、OpenJDKをインストールする場合は下記のコマンドで行けます。(要管理者権限)
choco install openjdk
先にも書いた通り、開発用途であればOracle版でも商用利用も行けそうですが、Javaのランタイム自体用途に合わせてバージョンを切り替えるのもなかなかめんどくさいので、有償ライセンスを購入する予定がない場合はOpen JDKにそうとっかえしてしまった方が安心できそうです。