美文网首页
基于 Mac 环境编译自己的 openjdk

基于 Mac 环境编译自己的 openjdk

作者: 仰简 | 来源:发表于2022-02-19 20:44 被阅读0次

    一、下载源码

    下载地址:https://github.com/openjdk
    版本选择:这个是有讲究的。首先要看看自己的电脑上安装的是 openjdk 是什么版本。比如我的是 openjdk 14.0.2。确认方法是找到 openjdk 的安装目录,一般是在如下目录下。

    /Users/kyan/Library/Java/JavaVirtualMachines
    

    如此,我选择的版本就是 jdk14u。之所以这么选择,其原因是因为: jdk 的源代码既包含了 java 代码,又包含了 c/c++ 等 native 代码。而 java 代码的编译需要一个 root jdk。一般来说 root jdk 的版本应该与所编译的版本是相对应的。

    二、环境准备

    一般来说安装好 xcode 就行。因为其安装好后就带了 c/c++ 的编译环境 clang。

    三、编译

    配置
    首先进行配置,在源码的根目录下,输入命令:

    bash configure --disable-warnings-as-errors
    

    注意,后面的选项最好加上,不然会有一堆乱七八糟的编译问题。当看到以下输出时,那恭喜你,完成了第一小步。

    A new configuration has been successfully created in
    /Users/kyan/github/jdk14u-master/build/macosx-x86_64-server-release
    using configure arguments '--disable-warnings-as-errors'.
    
    Configuration summary:
    * Debug level:    release
    * HS debug level: product
    * JVM variants:   server
    * JVM features:   server: 'aot cds compiler1 compiler2 dtrace epsilongc g1gc graal jfr jni-check jvmci jvmti management nmt parallelgc serialgc services shenandoahgc vm-structs zgc' 
    * OpenJDK target: OS: macosx, CPU architecture: x86, address length: 64
    * Version string: 14.0.2-internal+0-adhoc.bytedance.jdk14u-master (14.0.2-internal)
    
    Tools summary:
    * Boot JDK:       openjdk version "14.0.1" 2020-04-14 OpenJDK Runtime Environment (build 14.0.1+7) OpenJDK 64-Bit Server VM (build 14.0.1+7, mixed mode, sharing)  (at /Users/bytedance/Library/Java/JavaVirtualMachines/openjdk-14.0.1/Contents/Home)
    * Toolchain:      clang (clang/LLVM from Xcode 12.4)
    * C Compiler:     Version 12.0.0 (at /usr/bin/clang)
    * C++ Compiler:   Version 12.0.0 (at /usr/bin/clang++)
    
    Build performance summary:
    * Cores to use:   12
    * Memory limit:   32768 MB
    

    编译
    输入命令:

    make images
    

    不出意外的话,将会有如下输出:

    Finished building target 'images' in configuration 'macosx-x86_64-server-release'
    

    编译产物

    编译完成后,会在如下的目录中看到自己编译出来的 javac / jar / jstack 等命令行工具了。

    /Users/kyan/github/jdk14u-master/build/macosx-x86_64-server-release/jdk/bin
    

    相关文章

      网友评论

          本文标题:基于 Mac 环境编译自己的 openjdk

          本文链接:https://www.haomeiwen.com/subject/sfzmxltx.html