Window下编译OpenJDK17

 本文详细介绍Window下如何编译OpenJDK17,包含源码路径,各工具下载地址,严格按照文章中的步骤来操作,你将获得一个由自己亲手编译出的jdk。

 一、下载OpenJDK17源码

下载地址:GitHub - openjdk/jdk at jdk-17+35

说明:

1、kkgithub为github的国内镜像,能够提高下载速度

 2、下载下来的源码存放路径:无中文、无空格

、阅读一遍doc/building.html

简单阅读一遍源码中的编译文档,重点关注各工具的版本要求。

构建步骤主要为以下4步:

1、获取源码

2、运行配置(bash configure)

3、运行make(make images)

4、验证是否构建成功(./build/*/images/jdk/bin/java -version)

、安装CYGWIN

CYGWIN是一个用于在windows上模拟UNIX或LINUX环境的软件,在其上可使用GNU工具集在Windows上进行嵌入式系统开发。之所以要下载这个软件,是因为后面编译OpenJDK的时候,需要用GNU Make来执行Makefile文件。

下载地址:https://www.cygwin.com/setup-x86_64.exe

说明:

1、安装在非不含中文、不含空格的路径下

2、安装必须的组件:<path to Cygwin setup>/setup-x86_64 -q -P autoconf -P make -P unzip -P zip

3、后续的配置和运行,都需要再cygwin环境下执行,双击桌面图标即可进入

、安装Visual Studio 2019(C++编译器)

下载地址:https://aka.ms/vs/16/release/vs_professional.exe

参考地址:

创建基于网络的安装 - Visual Studio (Windows) | Microsoft Learn

说明:

1、OpenJDK17最高只支持VS2017和VS2019,不支持VS2022

2、VS安装路径不能包含中文、空格,在--with-tools-dir需要指定该位置

3、工作负荷需要勾选“使用C++的桌面开发”

4、语言包需要安装“英语”

五、安装jdk(--with-boot-jdk)

jdk编译过程中需要将Java源码编译成class文件,因此本地需要安装现有的jdk,最好版本号和openjdk保持一致。

下载地址:https://aka.ms/download-jdk/microsoft-jdk-17.0.12-windows-x64.msi

说明:jdk安装路径不能包含中文和空格,在--with-boot-jdk中需要指定该位置

六、配置依赖

在cygwin环境执行配置。

  1. 进入jdk源码解压目录。
  2. 执行清理:make dist-clean(每次编译失败需要改配置时,都需要执行清理命令)
  3. 执行配置:bash configure --enable-debug --with-jvm-variants=server --with-boot-jdk=/cygdrive/c/oracle_jdk-17 --with-tools-dir=/cygdrive/c/msv/2019/Professional/VC/Auxiliary/Build --disable-warnings-as-errors(jdk和vs需要替换为自己的目录,/cygdrive/c/oracle_jdk-17为cygwin模式下的路径写法,代表C:\oracle_jdk-17,这些配置项都必不可少,踩过坑
  4. 执行成功提示如下,如果有错误,根据错误信息,查阅building.html中的解决方案,处理完之后执行清理,再重新执行配置

七、编译

1、先执行make clean清除旧配置

2、再执行make images进行编译,预计耗时1小时,成功提示如下:

八、验证

编译输出的jdk路径为:<jdk源码路径>\build\windows-x86_64-server-fastdebug\jdk,jdk目录即为基于源码编出绿色版jdk,进入bin目录,执行Java -version,能正确输出,即代表编译成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值