WindowsでもOpenJDK 17をコンパイルしたい
はじめに
ついに11に続くLTSである17がGAしましたね。
というわけで、OpenJDKをWindows環境でビルドする方法を確認してみました。
環境
公式のドキュメントを参照する。万葉集にも書かれています。
Visual Studio or Build Tools for Visual Studio
C++コンパイラとかWindows SDKが必要なだけで、Visual Studioが要らなければBuild Toolsだけで大丈夫です。
ワークロードは『C++によるデスクトップ開発』だけ選択しておけば大丈夫っぽいですね。
Cygwin
Cygwinではビルドに以下が必要になります。
- autoconf
- make
- zip
- unzip
また、リポジトリからソースコードをクローンするのにgitが必要になるので、併せてインストールしておきます。
JDK 16 or 17
JDKのビルドには、対象のバージョンか一つ下のバージョンのJDKが必要になります。
JDKをビルドするのにJDKが必要なのはなんだかアレですが、まぁしょうがないのでしょう。
コマンドラインオプションで場所を指定できるので、PATH
を通したり、JAVA_HOME
を事前に設定しておく必要はありません。
クローン
ここからの操作はCygwinのシェルで実行します。
OpenJDKのソースコードをとってきて、タグをチェックアウトします。
$ git clone https://github.com/openjdk/jdk.git $ cd jdk $ git checkout refs/tags/jdk-17+35
ビルド
まずconfigure
を実行します。ここでオプションでブートストラップ用のJDKのパスを指定します。
ここでの注意点ですが、C:\path\to\java
のようなスタイルで指定するとうまく動かないそうです。
そのため、/cygdrive/c/path/to/java
のようなスタイルでJDKまでのパスを指定します。
$ bash configure --with-boot-jdk=/cygdrive/c/java/jdk-16.0.2+7
configure
が問題なく完了したら、以下のコマンドでビルドします。
$ make all
また、ここではJOBS=並列数
で並列度合いを指定できます。
そのほかにも色々オプションがあるっぽいので、詳しくは公式ドキュメントを参照してください。
ビルドが完了すると、build/windows-x86_64-server-release/images
にいろいろ出来ています。やったね
おわり