mac 编译 openjdk 2020版

mac 编译 openjdk 2020版

环境:

系统:macOS Catalina 10.15.4

Xcode版本: 10.15.2

Mercurial版本:5.2.2-macosx10.14

xcode-select:xcode-select version 2373

背景:

目前开发中用的是jdk1.8的版本,本想下载jdk8的openjdk研究一下,奈何编译过程中出现种种的错误导致编译失败,搞了快整整一天了(其实也就快9个多小时吧),最后失败告终(劝退)。但是总不能就这样算了吧,我直接下载了最新版的openjdk14 [http://hg.openjdk.java.net/jdk/jdk14],越是高版本的openjdk编译通过的几率也越大(编译通过后的jdk14其实也挺香的哈)。

第一步 安装工具

首先要安装一下几个关键工具,错错错错错,首先,带上你的电脑找个比较凉爽的地方,台式机性能不是很棒的尽量开下空调,然后安装一下几个关键工,如果有homebrew的话,会方便很多

brew install mercurial
brew install autoconf
brew install freetype
brew install ccache

# 这个直接命令安装不需要依赖 homebrew
xcode-select install

第二步 下载源码

安装好工具后,就可以开始下载openjdk的源码了,源码的下载方式一共有三种(比较推荐github直接下载,一键就能下载总是比较快乐的)

  1. 第一种方式是通过mercurial代码管理工具clone下来
    在你的pc上找个你喜欢的位置,位置在哪不重要,关键是只要要有5G左右的空间,因为编译完成后的文件夹总空间占用将近4个G。

    通过下方这两条命令找到你的文件夹,开始clone代码,直到clone完成,这期间经常会发生不可预料的事情导致下载失败,不建议这个操作,但并不是不能成功,我失败了,但是我的小伙伴却成功了。
cd /myfolder/openjdk/
hg clone http://hg.openjdk.java.net/jdk/jdk14 openjdk14
  1. 第二种方式是通过浏览器获取,打开web网站[http://hg.openjdk.java.net/],找到你喜欢的那个jdk版本,我喜欢jdk索引里的jdk14版本[http://hg.openjdk.java.net/jdk/jdk14/],打开这个页面。

mac 编译 openjdk 2020版

发现页面上都是看不懂的东西了吧,不知道download在哪了对吧,我也不知道在哪。我们直接找到左侧的"browse"link标签,点击它,可以看到下图的样子。

这就是一级目录的结构,点击进去,可以看到相关的代码,在左侧的"browse"link标签下方找到你想要的格式比如 gz,点击它就可以下载了,直到下载成功为止,下载成功后解压一下(劝退,下载后文件有时候打不开,并不是每次都这样,但浪费了时间总是比较兴心疼的,因为我没有学习"时间管理")

mac 编译 openjdk 2020版

  1. 第三种方式比较直接了,也是比较熟悉的那个操作。[https://github.com/AdoptOpenJDK/openjdk-jdk14u]直接上github找到你要的版本,我这里使用的是jdk14u的版本,下载成功后解压一下。

    除了第一种方式不需要解压外,第二种和第三种方式都需要解压一下下载成功的压缩文件。
    然后 cd 进入到解压后的文件夹根目录(第一种方式下载的直接进入下载目录即可)


    进入目录后可以ls看下文件目录结构,你喜欢ll查看也行啦,我就举个栗子,看下是否有个文件叫做 configure 的文件,有的话,不要担心,这个文件本来就该有的,没有的话,你可能进错文件夹或者下载错文件了。

第三步 执行configure配置命令

sudo ./configure --with-debug-level=slowdebug --disable-warnings-as-errors

执行这个命令可能或报错提示[sudo: ./configure: command not found],遇到这个错误的话就好说了,下方的两个命令选择一个执行就可以了完美,然后重复上方的命令,如果还是不行的话,我没遇到过,你上隔壁网站搜一下答案。

chmod 777 configure
chmod 755 ./configure

这个过程看情况,pc条件不是太差的一般3分钟以内吧,3分钟以上的也别慌,这个时候你所处的地方比较凉爽,或者空调应该已经让屋内凉爽了,pc扛得住。

完成后你应该会看到这样的提示画面。

mac 编译 openjdk 2020版

然后接着执行make命令,这一步耗时比较久一点,普通pc一般10分钟吧,电脑发热情况比较严重,十分考验室内温度。

第四步 执行make命令编译

sudo make LOG=trace all 

静静的等待。。。

喝口水。。。。。

再等一会儿。。。

看下微信。。。。

看下钉钉。。。。

10分钟后你大概会看到这样的界面

mac 编译 openjdk 2020版

界面上没有success字样,不要慌,打开你的根目录,找到build --> macosx-x86_64-server-slowdebug --> jdk --> bin ,确认 bin 文件夹中是否含有 java/javac/javap 等熟悉的文件(是不是有点像 jdk 的安装目录和文件)
找到了就没事,试着执行一下下方的命令,看下你的java version 是否是 openJDK 的版本。

./bin/java -version

不出意外的话,就能看到和我一样的画面。

mac 编译 openjdk 2020版

到这里,openJDK的编译已经告一段落了。

第五步 使用xcode编译

接下来可以开始试着使用xcode编译了。

我们打开xcode,你喜欢(option+空格也行),我就是option+空格也行打开xcode。

mac 编译 openjdk 2020版


打开xcode之后,找到这个create new xcode project,然后依次如图操作。

mac 编译 openjdk 2020版


找到 macOS 的 Command Line Tool ,选中后点击 next

mac 编译 openjdk 2020版


设置项目名称 ,然后点击 next

mac 编译 openjdk 2020版


找到这个默认的文件夹,右键delete,弹出的框中选择 move to Trash,直接丢进回收站(找个时间去清空一下回收站)

mac 编译 openjdk 2020版


然后右键,选择添加文件到当前项目

mac 编译 openjdk 2020版


选择第一步中下载的整个目录的根目录文件夹(第二种或者第三种方法解压出的那个文件夹)

mac 编译 openjdk 2020版


如图设置一下scheme,将Build栏目中默认的openjdk_14删掉

mac 编译 openjdk 2020版


选择Build下方的Run栏目,如图操作,选择other,弹出后接着下图中的操作

mac 编译 openjdk 2020版


选择编译好的openjdk目录中的jdk--> bin --> 目录下的 java 文件

mac 编译 openjdk 2020版

end

到这里,你的项目已经可以跑起来了,开始了一段钻研Hotspot之旅了,加油,骚年!

我的个人站点

SUMMER https://www.huangyingsheng.com/about

mac 编译 openjdk 2020版

上一篇:macOS Catalina 10.15.5正式发布 新添电池健康管理功能 延长电脑寿命


下一篇:ubuntu20.04源码安装nginx