我是靠谱客的博主 默默饼干,最近开发中收集的这篇文章主要介绍MacOS编译OpenJDK源码,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

点赞再看,养成习惯,微信公众号搜索【虚竹讲程序经】,获取更多技术干货!


当我们搭建完JDK源码阅读环境,如果修改了源码,执行断点的时候会发现出现“source code does not match the bytecode”,其实就是依赖的JDK环境和你修改的不匹配,所以我们需要手动编译JDK,当修改了源码之后,重新编译就不会出现上面的错误信息。

基础环境准备

不同的软件环境编译执行的结果和报错信息会存在差异

  • macOS Big Sur 11.3.1
  • Xcode 12.5(直接从AppStore上下载)
  • 安装Jdk12

这些命令如果没有,可以使用brew进行下载

  • make --version(3.81)
  • autoconf --version(2.71)
  • clang --version(12.0.5)
  • clang++ --version(12.0.5)
  • freetype-config --ftversion(2.10.4)
  • ccache --version(4.2.1)

下载源码

在github上下载openjdk源码,版本切换至13

git clone https://github.com/openjdk/jdk.git
git checkout jdk-13+33

configure配置

  • –with-freetype后跟fretype安装路径,使用brew list freetype命令查看安装路径
  • –with-boot-jdk后跟JDK安装路径
bash ./configure --with-debug-level=slowdebug --with-jvm-variants=server --enable-ccache --with-freetype=/usr/local/Cellar/freetype/2.10.4
--with-boot-jdk=/Library/Java/JavaVirtualMachines/jdk-12.0.2.jdk/Contents/Home --disable-warnings-as-errors

如果执行之后报以下错误信息,直接把上述脚本中–with-freetype的值改为bundled即可
configure: error: 'valid values for --with-freetype are ‘system’ and ‘bundled’

如果提示代码上的错误信息,在github上找到对应的文件进行对比,然后修改文件。

编译

配置成功之后,执行编译镜像

make images

如果在源码路径的build下已经存在多个镜像目录,执行上述命令会报错,解决方案如下:
  • 清空build目录下的所有内容,重新执行上诉命令
  • 指定版本进行编译
make images CONF=版本信息

编译之后出现如下信息就表示编译成功

Finished building target ‘images’ in configuration ‘macosx-x86_64-server-slowdebug’

最后生成的JDK目录如下:
jdk/build/macosx-x86_64-server-slowdebug/images/jdk
// 在bin目录下执行命令查询编译完成的版本
./java -version

最后

以上就是默默饼干为你收集整理的MacOS编译OpenJDK源码的全部内容,希望文章能够帮你解决MacOS编译OpenJDK源码所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部