windows11怎么编译最新版本的openJDK(25+)

前言

最近在学习编译原理,想看一下java的编译器长成什么样,最好自己可debug一下源码,学习一下底层的知识.

由于我从来没有接触过openJDK编译的相关内容,所有走了不少弯路,再次记录一下.

准备工作

1. 下载源码 openJDK下载地址

在git下载比较慢,我直接用网页下载了一个zip包,东西都是一样的,这个代码就是master上的最新代码,是还没有发布的版本,你也可以去tags下载比较稳定的版本.

image-20250316180513960

2. 下载编译工具(openJDK官放推荐 cygwin) 下载地址:Cygwin

2.1 安装/注意安装目录不能有中文或者空格

image-20250316181635224

image-20250316181817634

image-20250316181908037

image-20250316181951276

image-20250316182018122

image-20250316182047576

这里一定要选择 完整 , autoconf,make,unzip,zip,gcc,g++ 这几个包是你必须要下载的
image-20250316182510688

验证cygwin是否安装成功,状态等于OK就代码成功了

cygcheck -c cygwin

image-20250316183840428

3.下载visual studio C++(2019/2022) 这里我使用的是2022版本的 下载地址 适用于 Windows 的 Visual Studio C/C++ IDE 和编译器

开始编译

1.以管理员身份打开cygwin,进入你下载的openJDK目录

  • 先说一下cygwin的目录结构 /cygdrive/d/workspace/code/java-workspace/jdk-master cygdrive 是这个程序的前缀,/d就是你本地电脑D盘,后面的就是你的openJDK所在的目录了
    image-20250316184643405

2.编译命令
编译命令需要两个地址

  1. 本地jdk安装的位置
  2. visual studio c++ , 因为我的visual studio c++ 的安装目录存在空格,所以在这里我转义了一次.
# 转义前的路径 C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Auxiliary\Build
cygpath -d "C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Auxiliary\Build"
#转义后的路径: C:\PROGRA~1\MIB055~1\2022\PROFES~1\VC\AUXILI~1\Build
  • 运行配置
bash configure \
  --with-debug-level=slowdebug \
  --with-native-debug-symbols=external \
  --disable-warnings-as-errors \
  --with-boot-jdk=/cygdrive/c/Users/84344/.jdks/openjdk-23.0.2 \  #本地JDK地址,编译JDK需要上一个版本的JDK
  --with-tools-dir="/cygdrive/c/PROGRA~1/MIB055~1/2022/PROFES~1/VC/AUXILI~1/Build" \ #visual stuido C++ 安装目录,转义之后的地址
  --with-toolchain-version=2022 \ #visual studio c++ 的版本
  --with-toolchain-type=microsoft

如果报错:

configure: error: Target CPU mismatch. We are building for x86_64 but CL is for "版"; expected "x64".
configure exiting with result code 1

在JDK源码中找到generated-configure.sh文件,把这个if注释掉(这句话的意思是,校验你电脑的CPUr如果是x86_64,编译器应该生成64位的代码)

image-20250316192235621

3.运行make

make images CONF=windows-x86_64-server-slowdebug

4.验证新建的JDK

./build/*/images/jdk/bin/java -version

5.运行基本测试

 make run-test-tier1 CONF=windows-x86_64-server-slowdebug

如果你在编译的时候遇到问题欢迎给我留言!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值