mac 编译 openjdk8 过程记录

1.环境准备

参考: https://blog.lichenghao.cn/article/1doBxfNLsWgYvRRxOoADL

1.1 源码准备

openjdk 源码地址:https://github.com/openjdk/jdk8u
官方 wiki:https://wiki.openjdk.org/display/jdk8u

下载源码

git clone  git@github.com:openjdk/jdk8u.git

1.2 bootjdk 

本地没有安装jre的,自行解决

1.3 安装 Xcode

macos版本 Sonoma14.5,尽量保持官方版本

已经安装新版本的Xcode和CommandLineTools,不支持远古的openjdk8,因此需要安装比较老的版本支持本次编译,google帖子说只需要版本小于12(包含12)就可以

1)到官网下载 Sign In - Apple Xcode12.5.1,安装包 Xcode_12.5.1.xip 很大,感谢公司网速

2)解压出Xcode后点击,大大的提示框,安装在此Mac上的Xcode版本与macOS Sonoma不兼容,自己去下最新版本的吧。在求助google后,https://juejin.cn/post/7163936930009186312 帖子给出了解决方案 ,自己基于帖子的做法,将刚刚解压出来的Xcode重命名为 Xcode12.5.app后,然后执行

mv ./Xcode12.5.app /Application/

,然后进入/Applications/Xcode12.5.app/Contents/MacOS点击Xcode是可以正常执行的。

3)多版本之后就可以依赖 xcode-select 这个神器进行切换Xcode版本,参考 https://juejin.cn/post/6844903844921475079 。

sudo xcode-select -s /Applications/Xcode12.5.app/Contents/Developer

切换后验证了下clang的版本,符合预期

clang -v
Apple clang version 12.0.5 (clang-1205.0.22.11)
Target: x86_64-apple-darwin23.5.0
Thread model: posix
InstalledDir: /Applications/Xcode12.5.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

蛋疼的apple,自己遇到的最大卡点,这块重点介绍下

1.4 安装 autoconf 、freetype 工具

// 软件源码包的自动配置工具
brew install autoconf

// 字体引擎,编译中要依赖的 freetype
brew install freetype

2.编译过程

2.1 执行配置命令 config

给 configure 执行权限,然后执行如下命令进行自动配置

./configure --with-target-bits=64 --with-jvm-variants=server --with-debug-level=slowdebug 2>&1 | tee configure_mac_x64.log

参数说明:
--with-target-bits=64 设置 32 为 / 64 编译
--with-jvm-variants 设置要构建的 JVM 的变体,目前可以选择 server、client、minimal、core、zero、zeroshark、custom
--with-debug-level 启用 slowdebug 级别调试
2>&1 | tee xxx.log 2>&1 错误重定向到标准输出;并将执行打印的信息全部保存到 xxx.log 文件中
更多参数见:源码包中 doc/building.md 文件

2.2 编译

make all

坐等输出结果

----- Build times -------
Start 2024-06-21 16:13:11
End   2024-06-21 16:22:56
00:00:18 corba
00:00:16 demos
00:01:36 docs
00:02:22 hotspot
00:01:32 images
00:00:14 jaxp
00:00:23 jaxws
00:02:29 jdk
00:00:23 langtools
00:00:11 nashorn
00:09:45 TOTAL
-------------------------

2.3 验证编译出来的jdk

进入 /xxx/jdk8u/build/macosx-x86_64-normal-server-slowdebug/jdk/bin 

ls 
appletviewer     jarsigner.diz    jconsole         jjs.diz          jstatd           rmic.diz         unpack200
appletviewer.diz java             jconsole.diz     jmap             jstatd.diz       rmid             unpack200.diz
clhsdb           java.diz         jdb              jmap.diz         keytool          rmid.diz         wsgen
clhsdb.diz       javac            jdb.diz          jps              keytool.diz      rmiregistry      wsgen.diz
extcheck         javac.diz        jdeps            jps.diz          native2ascii     rmiregistry.diz  wsimport
extcheck.diz     javadoc          jdeps.diz        jrunscript       native2ascii.diz schemagen        wsimport.diz
hsdb             javadoc.diz      jfr              jrunscript.diz   orbd             schemagen.diz    xjc
hsdb.diz         javah            jfr.diz          jsadebugd        orbd.diz         serialver        xjc.diz
idlj             javah.diz        jhat             jsadebugd.diz    pack200          serialver.diz
idlj.diz         javap            jhat.diz         jstack           pack200.diz      servertool
jar              javap.diz        jinfo            jstack.diz       policytool       servertool.diz
jar.diz          jcmd             jinfo.diz        jstat            policytool.diz   tnameserv
jarsigner        jcmd.diz         jjs              jstat.diz        rmic             tnameserv.diz

看下java版本

./java -version
openjdk version "1.8.0_402-internal-debug"
OpenJDK Runtime Environment (build 1.8.0_402-internal-debug-xxx_2024_06_21_16_12-b00)
OpenJDK 64-Bit Server VM (build 25.402-b00-debug, mixed mode)

  • 6
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值