源码编译的意义-在 MacOS 上编译 OpenJDK 源代码

喜欢就再看,让它成为一种习惯,微信公众号搜索【徐竹的程序经典】,获取更多技术干货!

当我们搭建完JDK源码阅读环境后源码编译的意义,如果我们更改源码并执行断点,就会发现“源码与字节码不匹配”。 事实上,依赖的JDK环境与你改变的不匹配,所以我们需要自动编译JDK,当源代码改变时源码编译的意义,重新编译后就不会出现里面的错误信息。

基本环境规划

不同软件环境下编译执行结果和错误信息会有所不同

如果这些命令不可用,您可以使用brew下载它们

制作--版本(3.81)

源码编译的意义-在 MacOS 上编译 OpenJDK 源代码

autoconf --版本(2.71)

铿锵——版本(12.0.5)

铿锵++ --版本(12.0.5)

freetype-config --ftversion(2.10.4)

源码编译的意义-在 MacOS 上编译 OpenJDK 源代码

ccache --版本(4.2.1)

下载源代码

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

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

源码编译的意义-在 MacOS 上编译 OpenJDK 源代码

配置配置

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下已经存在多个镜像目录,则执行上述命令时会报错。 解决方法如下:

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

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 源码编译 源码编译的意义-在 MacOS 上编译 OpenJDK 源代码 https://www.wkzy.net/game/162167.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务