Window下编译OpenJDK17

2024-09-07 23:52
文章标签 编译 window openjdk17

本文主要是介绍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,能正确输出,即代表编译成功

这篇关于Window下编译OpenJDK17的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1146526

相关文章

maven 编译构建可以执行的jar包

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」👈,「stormsha的知识库」👈持续学习,不断总结,共同进步,为了踏实,做好当下事儿~ 专栏导航 Python系列: Python面试题合集,剑指大厂Git系列: Git操作技巧GO

Windows环境利用VS2022编译 libvpx 源码教程

libvpx libvpx 是一个开源的视频编码库,由 WebM 项目开发和维护,专门用于 VP8 和 VP9 视频编码格式的编解码处理。它支持高质量的视频压缩,广泛应用于视频会议、在线教育、视频直播服务等多种场景中。libvpx 的特点包括跨平台兼容性、硬件加速支持以及灵活的接口设计,使其可以轻松集成到各种应用程序中。 libvpx 的安装和配置过程相对简单,用户可以从官方网站下载源代码

js window.addEventListener 是什么?

window.addEventListener 是 JavaScript 中的一个方法,用于向指定对象(在这个情况下是 window 对象,代表浏览器窗口)添加事件监听器,以便在该对象上发生特定事件时执行相应的函数(称为事件处理函数或事件监听器)。 这个方法接受三个参数: 事件类型(type):一个字符串,表示要监听的事件类型。例如,"click" 表示鼠标点击事件,"load" 表示页面加

Golang test编译使用

创建文件my_test.go package testsimport "testing"func TestMy(t *testing.T) {t.Log("TestMy")} 通常用法: $ go test -v -run TestMy my_test.go=== RUN TestMyTestMy: my_test.go:6: TestMy--- PASS: TestMy (0.

Qt中window frame的影响

window frame 在创建图形化界面的时候,会创建窗口主体,上面会多出一条,周围多次一圈细边,这就叫window frame窗口框架,这是操作系统自带的。 这个对geometry的一些属性有一定影响,主要体现在Qt坐标系体系: 窗口当中包含一个按钮,这个按钮的坐标系是以父元素为参考,那么这个参考是widget本体作为参考,还是window frame作为参考,这两种参考体系都存在

C++/《C/C++程序编译流程》

程序的基本流程如图:   1.预处理        预处理相当于根据预处理指令组装新的C/C++程序。经过预处理,会产生一个没有宏定义,没有条件编译指令,没有特殊符号的输出文件,这个文件的含义同原本的文件无异,只是内容上有所不同。 读取C/C++源程序,对其中的伪指令(以#开头的指令)进行处理将所有的“#define”删除,并且展开所有的宏定义处理所有的条件编译指令,如:“#if”、“

编译linux内核出现 arm-eabi-gcc: error: : No such file or directory

external/e2fsprogs/lib/ext2fs/tdb.c:673:29: warning: comparison between : In function 'max2165_set_params': -。。。。。。。。。。。。。。。。。。 。。。。。。。。。。。。。 。。。。。。。。 host asm: libdvm <= dalvik/vm/mterp/out/Inte

QT 编译报错:C3861: ‘tr‘ identifier not found

问题: QT 编译报错:C3861: ‘tr’ identifier not found 原因 使用tr的地方所在的类没有继承自 QObject 类 或者在不在某一类中, 解决方案 就直接用类名引用 :QObject::tr( )

hector_quadrotor编译总结 | ubuntu 16.04 ros-kinetic版本

hector_quadrotor编译总结 | ubuntu 16.04 ros-kinetic版本 基于Ubuntu 16.04 LTS系统所用ROS版本为 Kinetic hector_quadrotor ROS包主要用于四旋翼无人机的建模、控制和仿真。 1.安装依赖库 所需系统及依赖库 Ubuntu 16.04|ros-kinetic|Gazebo|gazebo_ros_pkgs|ge

hector_quadrotor编译总结 | ubuntu 14.04 ros-indigo版本

hector_quadrotor编译总结 | ubuntu 14.04 ros-indigo版本 基于Ubuntu 14.04 LTS系统所用ROS版本为 Indigo hector_quadrotor ROS包主要用于四旋翼无人机的建模、控制和仿真。 备注:两种安装方式可选:install the binary packages | install the source files