美文网首页
基于 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