我的macOS版本是10.15.x,Xcode版本是12.2(看到别人说高版本有bug,实测可行)。
编译主要有三个步骤:
- 准备好一份编译好JDK 11和一份未编译JDK 12的源码。
- 构建编译环境
- 编译
1. 准备好一份编译好JDK 11和一份未编译JDK 12的源码
JDK 11:添加链接描述
OpenJDK由多个部分(HotSpot、JDK类库、JAXWS、JAXP······)构成,其中一部分(HotSpot)代码使用C、C++编写,而更多的代码则是使用Java语言来实现,因此编译这些Java代码就需要用到另一个编译期可用的JDK,官方称这个JDK为“BootStrap JDK”。编译OpenJDK 12时,Bootstrap JDK必须使用JDK 11及之后的版本。
JDK 12源码:添加链接描述
这个我下载的很慢,也可以去github上下载:添加链接描述
完成后解压,我电脑上有一个JDK 8,为了之后编译方便就把JAVA_HOME改成JDK 11的地址了。之后可以都改回去。
vi ~/.bash_profile
这里需要特别注意一个地方,JDK 9.0.4引入模块,CLASSPATH变量不再需要了,如果没有把这行注释的话,就会报找不到tools.jar,dt.jar的错误。
2. 构建编译环境
首先通过brew命令安装编译时需要的依赖
brew install autoconf