欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

macOS编译openjdk8/11

程序员文章站 2024-03-14 20:24:59
...

为了看jdk和jvm源码,我们可以动手编译一个自己的jdk

  1. 下载jdk源码包并且解压文件,我这里就下了常见的两个版本:jdk8和jdk11
    下载
    macOS编译openjdk8/11
    macOS编译openjdk8/11
    我就把它放在想要的目录位置下:
    macOS编译openjdk8/11

  2. 检查编译环境是否完整
    我使用的是macOS 10.14.3,需要安装Xcode

    gcc --version
    g++ --version
    make --version
    autoconf --version
    freetype-config --ftversion
    

    如果上面的环境不完整就brew install一下
    另外还需要本机已经具有一个jdk环境了,如果要编译jdk8,需要至少jdk7,如果编译jdk11,我自己用的jdk8也可以

    这里编译的是jdk11会比较方便,因为jdk8需要的是gcc但是我这个版本的macOS默认使用Clang作为编译器,configure会失败
    如果要编译openjdk8,戳这篇文章:mac下编译openjdk8?so easy!
    macOS编译openjdk8/11

  3. 执行编译步骤(这里就以编译jdk11为例)
    进入解压后目录,执行下面命令:

    sh configure
    make all
    

    首先执行全量编译,等待时间比较长,编译结果位于当前目录下的build文件夹下
    macOS编译openjdk8/11
    位于 /build/macosx-x86_64-normal-server-release/jdk目录下的就是编译好的jdk了
    macOS编译openjdk8/11
    我们可以cd进这个目录,查看编译好的java版本信息:
    macOS编译openjdk8/11
    可以看到上面的标识已经有我们的名称了,说明是我们自己编译的jdk

  4. 在idea中使用自己编译的jdk,并且查看自己jdk的源码
    新建一个idea空项目,并且更换jdk为自己编译的jdk
    打开项目设置添加jdk
    macOS编译openjdk8/11macOS编译openjdk8/11
    macOS编译openjdk8/11
    第二步,把source下的内容更换为自己编译的openjdk目录下的src内容,这样就能查看openjdk源码了
    macOS编译openjdk8/11
    这个目录位置就是解压后的openjdk包下的src目录macOS编译openjdk8/11
    第三步,记得在这里更改当前项目的jdk
    macOS编译openjdk8/11
    最后我们运行一个hello world试试看,现在已经使用的是我们编译好的jdk了
    macOS编译openjdk8/11

  5. 使用自己的jdk并且对源码做出各种注释之后,需要重新编译自己的jdk来生效
    进入jdk的项目目录下,然后执行

    make image
    

    这次是增量编译,只编译了改动部分,速度比较块,然后在我们debug源码的时候就不会有注释错位的情况产生了。

相关标签: JVM