開発中のOpenJDK9を手元の環境でビルドしてみたので手順をメモ。手元の環境はWindows機なので、Dockerを使いCentOS7上でビルドしています。ビルドに時間はかかるけど特に詰まらず簡単でした。
前提
Dockerの環境がインストール済み。Docker Toolboxを入れておけばOK。
Dockerイメージ取得
DockerHubに公開されているCentOS7の最新版(2016/04/18時点)である7.2.1511を今回は利用。
docker pull centos:7.2.1511
ビルドに必要なライブラリをインストール
yum でさくっとインストール。
yum install -y autoconf automake bison \
flex gcc gcc-c++ gcc-gfortran kernel-devel \
make m4 patch tar bzip2 gzip xz file gmp-devel \
mpfr-devel wget rsync unzip zip java-1.8.0-openjdk-devel \
libXtst-devel libXt-devel libXrender-devel \
cups-devel alsa-lib-devel freetype-devel which ccache
※必要なライブラリはCent OSでのOpenJDKのビルド方法 を参考とした。ただし、Java 7ではなくJava 8を使うようにした。
※これが必要最低限のライブラリかどうかまでは未調査。
OpenJDK9のソース取得
OpenJDKはMercurialをソース管理に使っているのMercurialをまずインストール。これもyumで入る。
yum install mercurial
後はhg clone
コマンドで取得。
hg clone http://hg.openjdk.java.net/jdk9/jdk9 OpenJDK9
これ自体は一瞬でcloneは完了する。取得されたファイルの中にget_source.sh
があるので、これを実行して各サブリポジトリのソースをまとめてcloneする。
cd OpenJDK9
sh get_source.sh
ネットワーク回線次第だがここで少し時間がかかる。
OpenJDK9のビルド
clone完了後はconfigure
を実行してmake
するだけ。デバッグ版としたかったので、configure
に--enable-debug
オプションを付けている。
sh configure --enable-debug
make all
自分の環境(Intel Core i5-4300U CPU @ 1.90GHz)だと、大体1時間ちょっとでビルドは完了。VirtualBoxの仮想OSにはCPU1つしか割り当てていなかったので、複数割り当てるともうちょっと速くなるかも? メモリーは4GBを仮想OSに割り当てている。
動作確認
(cloneディレクトリ)/build/linux-x86_64-normal-server-fastdebug/images/jdk
にビルドされている。
-version
で動作確認。
[root@08e244062a9d OpenJDK9]# ./build/linux-x86_64-normal-server-fastdebug/images/jdk/bin/java -version
openjdk version "9-internal"
OpenJDK Runtime Environment (fastdebug build 9-internal+0-2016-04-18-083249..OpenJDK9)
OpenJDK 64-Bit Server VM (fastdebug build 9-internal+0-2016-04-18-083249..OpenJDK9, mixed mode)