在Win 11下使用Visual Studio 2019和cygwin编译JBR(Java SDK 17)源码

article/2025/5/4 4:04:21

很多文章介绍了JDK 8和JDK11源码在Linux编译,很少有人介绍了JDK 17在windows的编译过程,所以写了这篇文章,为什么选用JBR 17版本,因为JBR17 版本集成了HotSwapAgent功能,具体HotSwapAgent有什么用,请看我前面写的文章:

https://blog.csdn.net/penker_zhao/article/details/127460206

在Github上有些简短的描述,如何在Windows环境下,编译源码,但还是遇到了一些坑,现在特别说明下:

JetBrains/JetBrainsRuntime: Runtime environment based on OpenJDK for running IntelliJ Platform-based products on Windows, macOS, and Linux (github.com)

英文原文如下:

Install the following:Cygwin x64. Required packages: autoconf, binutils, cpio, diffutils, file, gawk, gcc-core, make, m4, unzip, zip.
Install those together with Cygwin.
Visual Studio compiler toolset. Install with the desktop development kit, which includes Windows SDK and compilers. Visual Studio 2019 is supported by default.
Java 18 (for instance, Azul Zulu Builds of OpenJDK 18). If you have problems while configuring, read Java tips on Cygwin.
From the command line:"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64
"c:\Program_Files\cygwin64\bin\mintty.exe" /bin/bash -l
The first command sets up environment variables, the second starts a Cygwin shell with the proper environment.In the Cygwin shell:$ cd JetBrainsRuntime
$ git checkout main
$ bash configure --with-toolchain-version=2019
$ make images
This will build the release configuration under ./build/windows-x86_64-server-release/
  1. 首先安装Cygwin,Visual studio community 2019(安装目录一定不要带空格,如果有空格,请重装),JDK 19以上

Cygwin需要安装autoconf, binutils, cpio, diffutils, file, gawk, gcc-core, make, m4, unzip, zip这几个包

JDK19可以在这个目录安装Java Download | Java 7, Java 8, Java 11, Java 13, Java 15, Java 17, Java 19 - Linux, Windows & macOS (azul.com)

通过git命令,下载源码到本地文件夹

git config --global core.autocrlf false

git clone git@github.com:JetBrains/JetBrainsRuntime.git

  1. 在windows终端以管理员的方式运行下面的几个命令:

"D:\MSDN\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64
"D:\cygwin64\bin\mintty.exe" /bin/bash -l

请自行替换上面的安装目录

  1. 进入Cygwin目录后,运行下面四个命令:

$ cd JetBrainsRuntime
$ git checkout main
$ bash configure --with-toolchain-version=2019
$ make images
  1. 运行bash configure --with-toolchain-version=2019 命令,可能会碰到下面几个问题:

  • cl.exe error D8003 (missing source filename) when building。一定要运行上面第二点的vcvarsall.bat命令

  • 如果出现找不到一些DLL的情况,可以再重新安装下visual studio 2019的professional或者community版本

  • Visual Studio安装目录,或者path目录有空格的。如果出现failure的字样,可以适当修改,如果不好改,建议重装换没有空格的目录

  • Target CPU mismatch. We are building for x86_64 but CL is for ""; expected "x64"

打开make/autoconf/toolchain.m4,找到相应的字串Target CPU mismatch,有两个办法:

注释这一段if 把AC_MSG_ERROR改成AC_MSG_RESULT

  • 碰到最后以这个问题结尾的,

make[1]: *** [/cygdrive/g/xiaopeng/jdk/JetBrainsRuntime/make/Init.gmk:320:main] 错误 2

make: *** [/cygdrive/g/xiaopeng/jdk/JetBrainsRuntime/make/Init.gmk:186:images] 错误 2

请到JetBrainsRuntime\build\windows-x86_64-server-release\make-support\failure-logs查看具体报错,将utf8格式,改成utf8 with bom保存,我目前遇到了下面大概20个左右文件修改。

src\java.desktop\share\native\libfreetype\src\autofit\afblue.c

src\java.desktop\share\native\libfreetype\src\autofit\afscript.h

jdk\jetbrainsruntime\src\java.desktop\share\native\libharfbuzz\hb.hh

g:\xiaopeng\jdk\jetbrainsruntime\src\java.desktop\share\native\libharfbuzz\hb-style.h(1)

g:\xiaopeng\jdk\jetbrainsruntime\src\java.desktop\share\native\libharfbuzz\hb-ot-layout-common.hh(912)

g:\xiaopeng\jdk\jetbrainsruntime\src\java.desktop\share\native\libfreetype\src\sfnt\ttload.c(1):

  1. 编译成功后,进入build/windows-x86_64-server-release目录,可以看到编译的目录

在bin目录下面可以看到编译成功的java.exe和javac.exe等文件


http://chatgpt.dhexx.cn/article/gaLl1M4q.shtml

相关文章

idea插件开发-环境搭建

工欲善其事,必先利其器。——《论语卫灵公》 ideagradle配置 idea下载地址:官网 gradle下载地址:官网 idea与gradle的配置这里就不做过多的赘述了,需要的同学可以参考一下地址进行配置。 idea:https://blog.csdn.…

Jdk11下载及idea演示

jdk11环境搭建 jdk下载 Oracle官网: ​ https://www.oracle.com/java/technologies/javase-downloads.html 选择自己要下的jdk版本: 此次下载的jdk11 下载好后,进行解压,和环境配置 jdk环境配置 1.找到环境变量在哪&#x…

IntelliJ IDEA 2020.1 正式发布,15 项重大特性、官方支持中文了! | 原力计划

头图&作者 | YourBatman,CSDN博客专家 责编 | 唐小引 出品 | CSDN(ID:CSDNnews) 前言 千呼万唤始出来!自从官方在 2020-01-20 发布了其 2020 年的 Roadmap 后,我便持续关注着、期待着 JetBrains Intell…

idea 对应的git版本_IntelliJ IDEA 2019.3 首个最新访问版本发布,新特性抢先看

来源:https://www.oschina.net/news/109913/intellij-idea-starts-2019-3-early-access-program IntelliJ IDEA 才公布下一个主要版本 2019.3 的 Roadmap,近日就发布了 IntelliJ IDEA 2019.3 的首个早期访问版本(即 EAP 版本),版本号为 2019.…

IntelliJ IDEA 2019.3 发布,性能更牛逼!

距离 IntelliJ IDEA 2019.3 RC 发布不过几天的功夫,目前,IntelliJ IDEA 2019.3 也已正式发布。官方表示,该版本是其旗舰 IDE 的第三次也是最后一个主要版本。 据透露,在 IntelliJ IDEA 的这个主要版本上,该开发团队专注…

java在苹果电脑上编程软件下载_KOOV编程软件mac版下载

KOOV编程软件mac版是一款功能强大的编程学习应用服务平台,KOOV适应于多个年龄层的孩子,从多方面去学习编程,编程教育在未来将逐渐得到普及和重视。感兴趣的朋友快来下载使用吧。 软件功能 创意工坊 创意工坊 ,是自由地拼搭机器人、…

第二课 了解编程环境

第二课 了解编程环境-----------(注:新版webGoC更加简单,在www.51goc.com的入门课程里有。2019.8.6) 一、GoC编程环境 下载GoC安装程序【目录介绍页】直接安装即可。 点击桌面的“空程序.cpp”,会自动进入编辑环境&…

编程开发软件工具下载

MyEclipse10.7版本 安装包:链接:https://pan.baidu.com/s/1jHJD88m 提取码:cda8 复制这段内容后打开百度网盘手机App,操作更方便哦MyEclipse 2016版本 【推荐】: 安装包: 链接:https://pan.ba…

常用编程软件下载地址

visual studio 2005 简体中文团队开发版 http://newforum.cnool.net/topic_show.jsp?id1699578&oldpage1&thesisid45&flagtopic1 http://www.ttbt.cn/bt_download/16564.htm http://www.baseshow.com/ArticleContent/20063/200631310337775.html SQL server 2005简…

单片机用c语言编程软件手机版,单片机C语言编程软件(mikroc pro for pic)下载 V7.1.0 官方版 - 比克尔下载...

mikroc pro for pic是一款单片机C语言编程软件,软件拥有库的功能,你可以直接在项目里调用库里的内容,而且还有上千个库函数,再配合上数百个工作示例,使得您的编辑代码更加简单,另外,该软件支持数百个MCU,这个数量还会持续增长,可以说在同类软件里算是功能最全的了。 m…

c语言机器人编程软件,诺宝rc编程软件下载

诺宝RC官方版是功能强大的机器人编程软件,以直观的为你编写流程图,模仿的人的大脑进行编程,喜欢的朋友快来IT猫扑下载吧! 诺宝RC软件介绍 由哈尔滨工业大学深圳机器人教育中心研发的“诺宝 RC 编程软件”,为开发智能机…

c语言知识库app,学习C编程app下载-学习C编程下载1.1 安卓版-西西软件下载

学习C编程app是手机上的一个移动C语言知识库,软件拥有丰富的节目布局和导览功能,里面收录了超过1000个的内容主题,同时还在实例中高亮化了语法,让用户可以留浏览相关内容的时候发现重点。更多内容请亲自安装体验,喜欢的…

idea 2019 中如何给包或者类重命名。使用的快捷键是

我们在使用IDEA 2019时候,如果快速的给类或者包等重新命名呢 选择以后 键盘上的 shiftf6 快捷键

IDEA常用快捷键(三)--Shift+F6 重构-重命名

在重构时,需要先修改包、类、方法、变量、甚至注释等很是方便,能够直接修改所有被引用的地方。 如下,修改Person类中的name字段,ShiftF6后要重构的name字段被红框选中。 修改名称以后,提示如下,点击Do Ref…

IDEA自定义自动生成变量名快捷键和代码提示快捷键设置

从eclipse转到IDEA的时候,对IDEA的一些快捷键不适,比如自动生成变量名的快捷键和代码提示快捷键该如何设置呢? ----------------------------------2020-12-11更新------------------------------------------- 前阵子太忙了,来…

idea重写方法的快捷键

1、鼠标放在方法内部,按CtrlO,如下图:

【分类汇总】idea快捷键、idea配置、常用插件

写在前面 千万别看目录很长就感觉本篇博客很絮叨繁琐,里面多是配置的讲解贴了很多的图片方便大家了解,配置成功一次之后就可以一直使用了。 快捷键的使用建议大家先看,后续敲代码的时候刻意的使用快捷键,相信经过两三天的使用就可…

InteliJ IDEA 快捷键快速重构

一.IDEA快速重构快捷键 重构类、方法(change signarture):CTRLF6 重命名文件、方法、属性等(rename):SHIFTF6 提取当前选择为变量(extract variable):CTRLALTV 提取当…

idea java文件重命名_IDEA项目重命名的操作

1、修改project名称 2、修改module名称 3、修改Artifacts 4、修改pom的artifactId 重启IDEA,生效! 补充:idea 怎么修改项目名或者modal名字 项目名 1, 原来项目名称是aaaa 修改之后变成 2, 点击OK之后你会发现项目名还…

idea 重命名工程还是有之前名称_IntelliJ IDEA使用快捷键重命名项目、变量、文件等方法总结...

我表示,我在刚刚使用这个编辑器的时候,还真不知道怎么去重命名一个变量,重命名一个文件,或者一个文件夹。 理论上讲,你要是改动一个地方,那么,其他所有引用的地方,应该跟着都给自动的…