基于 Mac 环境编译自己的 openjdk
2022-02-19 本文已影响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