在Win 11下使用Visual Studio 2019和cygwin编译JBR(Java SDK 17)源码
创始人
2024-06-01 19:35:19
0

很多文章介绍了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等文件

相关内容

热门资讯

中华全国青年联合会第十四届委员... 本报讯(中青报·中青网记者 杨宝光 周围围)中华全国青年联合会第十四届委员会全体会议圆满完成各项议程...
新加坡提高私人住宅转售印花税 ... 观点网讯:7月4日,新加坡政府为抑制房价出台新措施,宣布提高四年内卖房者所需缴纳的印花税。新政策将适...
每日一吉 | 7月4日 作者:武官政
汉钟精机:董秘称产品暂未用于海... 投资者提问:董秘您好:公司压缩机和真空泵主要用于海洋油气开发、船舶动力、海水淡化等场景相关产品吗?有...
广平县中央公园迎来最美花季 转自:邯郸日报 近日,广平县中央公园迎来最美花季,园内荷花盛放,姿态各异,片片荷叶如青翠小伞铺展,构...
【华西宏观】资产配置日报:不卷... (转自:华西研究)华西宏观7月2日,近期中央财经委员会上强调的“依法依规治理企业低价无序竞争,推动落...
继续拖延“大而美”法案 美众议... 当地时间7月3日,美国众议院民主党领袖哈基姆·杰弗里斯以“神奇一分钟”的马拉松式发言,抗议美国总统特...
新材料赋能体育产业(延伸阅读)   本报记者  季  芳  碳纤维,指的是含碳量在90%以上的高强度高模量纤维,轻盈似羽毛却坚硬胜钢...
锐财经丨全国统一大市场建设向纵... 转自:中工网人民日报海外版记者 汪文正7月1日召开的中央财经委员会第六次会议(以下简称“会议”),对...
维修基金“助畅通” 下水管线“... 转自:鹤岗发布近日,南山区铁东铁西办事处西联社区利用物业维修基金对南山区名苑小区4号楼老旧下水管道进...