获取 OpenJDK 源代码

OpenJDK 8 源代码可通过 MercurialGithub 获取。这里推荐使用 Mercurial,Github 上的代码在 MacOS 上编译问题非常多。

安装 Mercurial

1
brew install mercurial

克隆 OpenJDK 8 仓库

1
hg clone https://hg.openjdk.java.net/jdk8u/jdk8u

获取完整源码并更新仓库

1
cd jdk8u && sh ./get_source.sh

获取低版本的 Xcode

如果你的 Xcode 版本大于 12,需要手动下载低版本 Xcode,下载地址为

https://xcodereleases.com/

编译 OpenJDK 8 最高支持的版本是 Xcode 12.5.1 下载完成后解压。解压完成后得到的程序因为版本限制可能无法双击执行。

但是问题不大,仍然可以使用 --with-xcode-path 指定使用此版本的 Xcode

1
--with-xcode-path=/Users/leon/Downloads/Xcode.app

编译配置

1
bash configure --with-freetype-include=/usr/local/Cellar/freetype/2.11.1/include/freetype2 --with-freetype-lib=/usr/local/Cellar/freetype/2.11.1/lib --with-xcode-path=/Users/leon/Downloads/Xcode.app

如果本地默认安装的 JDK 不是 JDK 7 或 JDK 8,需要安装 Boot JDK 并使用参数进行指定

1
--with-boot-jdk=/path/to/bootjdk

同时,编译过程需要依赖 freetype,如果没有安装请使用 homebrew 进行安装,安装完成后参照上面的命令使用 --with-freetype-include--with-freetype-lib 进行指定。

编译

1
make images

编译完成后后,产物在 build/macosx-x86_64-normal-server-release/jdk 目录下。