もともとはWindows 10でAdoptOpenjdk 11をビルドしようとして、先へ進まないので、まずはLinuxでビルドしてみた。
途中で openjdk-jdk11u/doc/building.html にドキュメントがあることに気がついたが、行き当たりばったりでどのくらい時間がかかるか試してみた。
環境
- CentOS 7.6.1810 (最小)
ビルド
ここにビルドスクリプトがある。
https://github.com/AdoptOpenJDK/openjdk-build.git
まず、gitコマンドをインストールし、gitレポジトリをクローンする。
sudo yum -y install git
git clone https://github.com/AdoptOpenJDK/openjdk-build.git
ディレクトリを移動し、ビルドスクリプトを実行すればいいはずだが、後出しじゃんけんでいろいろなものが必要と言われるので、先にインストールしておく。
9行あるとおり、9回リトライした。。。
→さらに30分後にALSAが足りないと言われる。
sudo yum -y install bzip2
sudo yum -y install autoconf
sudo yum -y install unzip
sudo yum -y install zip
sudo yum -y install java-11-openjdk-devel
sudo yum -y groupinstall "Development Tools"
sudo yum -y install libXtst-devel libXt-devel libXrender-devel libXi-devel
sudo yum -y install cups-devel
sudo yum -y install fontconfig-devel
sudo yum -y install alsa-lib-devel
ディレクトリを移動し、ビルドスクリプトを実行する。
cd openjdk-build/
./makejdk-any-platform.sh jdk11u
ここからなかなか先へ進まない。。。
Creating support/modules_libs/java.base/server/libjvm.so from 914 file(s)
約20分経って、次の行になった。。。
Creating hotspot/variant-server/libjvm/gtest/libjvm.so from 102 file(s)
約30分経って、ビルドエラーで終わる。
sound/PLATFORM_API_LinuxOS_ALSA_CommonUtils.h:26:28: 致命的エラー: alsa/asoundlib.h: そのようなファイルやディレクトリはありません
#include <alsa/asoundlib.h>
ALSAを足す。
sudo yum -y install alsa-lib-devel
2回目ビルド
workspaceを削除し、ビルドスクリプトを実行する。
cd openjdk-build/
rm -rf workspace/
./makejdk-any-platform.sh jdk11u
約42分後に完了した!
Your final archive was created at /home/adopt/openjdk-build/workspace/build/src/build/linux-x86_64-normal-server-release/images/OpenJDK.tar.gz
Moving the artifact to /home/adopt/openjdk-build/workspace/target/
All done!
解凍してみる。
cd ~
tar zxf openjdk-build/workspace/target/OpenJDK.tar.gz
cd jdk-11.0.3+7
バージョン表示の比較。
bin/java -version
java -version
openjdk version "11.0.3" 2019-04-16
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.3+7-201904210157)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.3+7-201904210157, mixed mode)
openjdk version "11.0.3" 2019-04-16 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.3+7-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.3+7-LTS, mixed mode, sharing)