在Mac下自己编译出一个OpenJDK10

最近读到《深入理解Java虚拟机》这本书,这本书在第一章就讲到如何手动编译出一个JVM,所以本程序猿也想报着试一试的心里弄一个在执行java -version命令时显示自己名字的JVM,截个图可以在朋友圈里炫一波了😆

前提:本人是在Mac下编译的,Windows下未尝试,估计会比较麻烦。

环境准备

  1. 本人的系统版本是10.13.4。
  2. 下载源码,解压并将其放到没有中文的路径下。下载地址: https://download.java.net/openjdk/jdk10/ri/openjdk-10_src.zip
  3. 安装Xcode。本人系统中是安装的9.3。
  4. 准备一个JDK9。(因为OpenJDK的组成部分中有些是用Java自身实现的,因此在编译这些时需要用到一个可用的JDK,官方称之为"Bootstrap JDK")
  5. 安装brew。官方安装命令: 
    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  6. 安装FreeType. 命令: brew install freetype。本人安装的2.9版本,官方说是只要是2.3或以上的版本即可。
    brew install freetype
  7. 安装Ccache。
    brew install ccache

安装

  1. 进入解压后的openjdk文件夹中,执行命令: bash configure --with-boot-jdk=<此处填写你准备的JDK9的路径> --disable-warnings-as-errors --with-target-bits=64
    bash configure --with-boot-jdk=/Library/Java/JavaVirtualMachines/jdk-9.0.4.jdk/Contents/Home --disable-warnings-as-errors --with-target-bits=64
  2. 若出现如下文字,则表示环境OK,继续下面的步骤:
  3. 执行make images开始编译。 接下来,你的CPU将会爆满,入下图
  4. 出现以下文字则表示编译完成。


    以下为编译出来的内容:


    运行查看版本:

    大功告成!!!

世上无难事,只怕有心人

看似本人从下载源码开始到编译出可运行的JDK10都是一帆风顺,实则期间经历了几次JDK版本的切换。《深入理解Java虚拟机》这本书里面所讲的编译的是JDK7,但可能年代太久远,系统太新,编译的时候一直报错,而且报的是C++代码中的错,所以本人断定肯定是本机C/C++编译器版本太新,然后切换开始编译JDK8,但还是有同样的问题,便又切换到JDK9,问题依旧,好吧,那就再试试JDK10吧,果然,成功编译,只不过编译的过程中出现了很多的警告,不过这应该没什么影响。世上无难事,只怕有心人,从JDK7的编译文档看到JDK10的编译文档,最终编译成功。

posted on 2018-04-27 15:25  -atao-  阅读(786)  评论(0)    收藏  举报