在 macOS 上编译 OpenJDK:从零开始的完整指南
创作时间:
作者:
@小白创作中心
在 macOS 上编译 OpenJDK:从零开始的完整指南
引用
CSDN
1.
https://m.blog.csdn.net/weixin_44066506/article/details/145695491
OpenJDK 是 Java 开发工具包(JDK)的开源实现,广泛应用于 Java 开发和运行环境。在某些情况下,我们可能需要自定义构建 OpenJDK 以满足特定需求。本文将详细介绍在 macOS 上从零开始编译 OpenJDK 的完整过程。
1. 准备工作
在开始编译之前,确保你的 macOS 系统已准备好以下工具和环境。
1.1 安装 Xcode
Xcode 是 macOS 上的开发工具集,提供了必要的编译环境。
- 从 App Store 安装 Xcode。
- 打开 Xcode 并同意许可协议。
- 安装 Xcode 命令行工具:
xcode-select --install
1.2 安装 Bootstrap JDK
OpenJDK 的构建需要一个 Bootstrap JDK(通常比目标版本低一个版本)。例如,如果你要构建 JDK 17,则需要安装 JDK 16 作为 Bootstrap JDK。
- 从 Oracle JDK 或 Adoptium 下载并安装 Bootstrap JDK。
- 验证 Bootstrap JDK 是否安装成功:
/Library/Java/JavaVirtualMachines/jdk-16.jdk/Contents/Home/bin/java -version
1.3 安装依赖工具
确保以下工具已安装:
- Autoconf:用于生成配置脚本。
- Make:用于构建。
- Zip/Unzip:用于打包和解压。
使用 Homebrew 安装这些工具:
brew install autoconf make zip
2. 获取 OpenJDK 源代码
OpenJDK 的源代码可以通过 Git 获取:
- 克隆 OpenJDK 仓库:
git clone https://github.com/openjdk/jdk.git
- 切换到目标版本分支(例如 JDK 17):
cd jdk
git checkout jdk-17+35
3. 配置构建环境
使用 configure 脚本生成构建配置。以下是一个典型的配置命令:
bash configure \
--with-xcode-path=/Applications/Xcode.app \
--with-boot-jdk=/Library/Java/JavaVirtualMachines/jdk-16.jdk/Contents/Home \
--with-jvm-variants=server \
--enable-debug \
--with-target-bits=64
配置选项说明
--with-xcode-path:指定 Xcode 的路径。--with-boot-jdk:指定 Bootstrap JDK 的路径。--with-jvm-variants:指定要构建的 JVM 变体(如server、client)。--enable-debug:启用调试模式。--with-target-bits:指定目标架构(32 位或 64 位)。
4. 构建 OpenJDK
配置完成后,使用以下命令构建 OpenJDK:
make images
这会构建完整的 JDK 镜像,包括 JVM、工具和库。构建完成后,生成的 JDK 位于 build/ 目录下。
5. 测试构建结果
5.1 验证 JDK
- 进入构建目录:
cd build/macosx-x86_64-server-release/images/jdk
- 运行
java -version验证 JDK 是否正确构建:
./bin/java -version
5.2 运行测试
使用以下命令运行单元测试:
make test
6. 打包和分发
6.1 打包 JDK
使用以下命令生成可分发的 JDK 包:
make zip
6.2 分发
将生成的 JDK 打包为压缩文件或安装包,分发给用户。
7. 开发
可以使用 Visual Studio Code 等编辑器进行开发,或针对 Java Native 方法,找到对应的 C 代码。
8. 常见问题
8.1 Xcode 路径错误
确保 --with-xcode-path 指定的路径正确。默认路径为 /Applications/Xcode.app。
8.2 Bootstrap JDK 版本不匹配
确保 Bootstrap JDK 的版本比目标版本低一个版本。
8.3 依赖工具缺失
如果配置失败,检查是否安装了所有依赖工具(如 Autoconf、Make 等)。
9. 总结
通过本文的步骤,你可以在 macOS 上成功完成以下任务:
- 安装 Xcode 和命令行工具。
- 安装 Bootstrap JDK 和依赖工具。
- 获取 OpenJDK 源代码并配置构建环境。
- 使用
make images构建 OpenJDK。 - 测试并打包生成的 JDK。
热门推荐
以案释法 | 婚后感情破裂,彩礼如何返还?
以朴拙之心 绘水墨新境——“静水流深”杜大恺艺术展亮相清华艺博

传统工艺与时尚设计完美融合 巧手匠心让旗袍焕发新光彩
欧美媒体惹不起,又放不下中国玩家,被质疑的TGA决定得罪所有人
中华古猫:老虎的直系祖先,森林中的孤独猎手
舒缓压力和焦虑的冥想和呼吸练习
生命奇迹:揭秘鲸鱼从无到有的演化史诗
写作秘籍:开启你的小说创作之门,实操“开端-发展-高潮-结局”的小说技巧
非洲猪瘟病毒核酸环境清除的实用指南
书写艺术:如何优雅地使用和保养你的钢笔?
送朋友长久保存的纪念礼物有哪些 这些礼物既独特又易保存
国漫新高点:《西行纪》的破界之旅与张铭涛的匠心独运
苏菜十大宴席名菜排行榜,谁是舌尖上的“苏”式传奇?
梦见与前任复合:心理学与传统文化的双重解读
经典名方——“清热解毒”黄连汤
为什么写代码的时候会出现玄学的现象
西瓜皮的功效与作用及禁忌简介
房子如何快速出售?这种出售策略对房产市场有何影响?
2024年风衣搭配指南:从面料到鞋子,全方位打造时尚造型
9天破影史票房纪录,哪吒2票房别再涨了,否则或得罪整个电影圈
电脑开机键不亮怎么办?全面排查与解决方案
xlsm怎么用excel打开
小猫洗澡应该用多少度的水?最佳水温是多少?
灌香肠时,就放这4种香料,香味浓郁味道正,久放不坏
女孩,你该如何保护自己+女孩,你要懂得保护自己女孩自我保护全书 女儿成长手册
“社恐”的我怎么才能自在地与人交往
乌骨鸡养殖全攻略:从品种选择到日常管理
战云笼罩:军事小说中的氛围塑造艺术
一级注册结构工程师:职责、重要性及职业发展
右佐匹克隆无效?换个思路改善失眠