实战1: MacOS下编译JDK12

本文的参考自下列资料

深度理解JVM第三版
https://blog.csdn.net/cloud_xy/article/details/88623975
https://blog.csdn.net/xiao_cai_ming/article/details/109820102
https://blog.csdn.net/zhuchencn/article/details/105423189
https://www.jianshu.com/p/885c718df9de
https://blog.csdn.net/qq_33543634/article/details/121153063
https://blog.csdn.net/Dongguabai/article/details/106384400

环境:MacOS Monterey

准备

安装Xcode和command line tools;

mac安装openjdk11

下载openjdk11

https://download.java.net/java/ga/jdk11/openjdk-11_osx-x64_bin.tar.gz

自定义openjdk11存放的目录并解压

mkdir -p /mypath/JavaVirtualMachines && cd !$
tar xvf openjdk-11_osx-x64_bin.tar.gz

链接到标准目录中

cd /Library/Java/JavaVirtualMachines
sudo ln -shf /usr/local/custom/JavaVirtualMachines/jdk-11.jdk jdk-11.jdk

vi ~/.bash_profile 添加

JAVA_11_HOME=`/usr/libexec/java_home -v 11`
alias jdk11="export JAVA_HOME=$JAVA_11_HOME && echo current JDK has switched to openjdk version 11. && java -version"

在终端使用 jdk11 来切换java version

获取JDK源码

https://hg.openjdk.java.net/jdk/jdk12

解压到指定目录openjdk12

安装依赖

brew install ccache  //加速编译
brew install freetype //字体引擎,编译过程中会被依赖到
brew install autoconf
cd openjdk12
sudo make images

结束流畅

但是……make命令执行会报错

原因:jdk12源码问题

JDK12源码错误修改

更改错误信息的这一行2873:85

buffer.insts()->initialize_shared_locs((relocInfo*)locs_buf, sizeof(locs_buf) / sizeof(relocInfo));
// 替换为
buffer.insts()->initialize_shared_locs((relocInfo*)locs_buf, (sizeof(locs_buf)) / sizeof((relocInfo)));

/Users/chenjun/MyStorage/InsideJVM/openJDK/src/hotspot/share/runtime/sharedRuntime.cpp:2873:109

buffer.insts()->initialize_shared_locs((relocInfo*)locs_buf, sizeof(locs_buf) / sizeof(relocInfo));
// 替换为
buffer.insts()->initialize_shared_locs((relocInfo*)locs_buf, (sizeof(locs_buf)) / (sizeof(relocInfo)));

Xcode13 兼容性问题

351行改为

#ifndef __APPLE__

上述以及其他错误都在下面两篇文章中找到

https://blog.csdn.net/qq_33543634/article/details/121153063

https://blog.csdn.net/xiao_cai_ming/article/details/109820102

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值