首页 > 系统相关 >windows上编译jdk

windows上编译jdk

时间:2023-07-01 15:55:37浏览次数:39  
标签:jdk windows boot 编译 Cygwin 版本 --

目录

Windows上编译jdk21

参考文档: https://openjdk.org/groups/build/doc/building.html

环境准备

编译 jdk 需要 unix 环境, 在 windows 上可以使用 WSL 或 Cygwin.

建议修改系统语言为 英语(美国).

笔者这里使用 Cygwin, 建议安装64位的 Cygwin, 去官网下载安装包运行, 注意在选择软件包的时候, 左上角查看选择 完整, 搜索要安装的四个包:

  • autoconf
  • make
  • zip
  • unzip

新增项上选择最新版本.

image-20230701151823814

image-20230701151808004

然后是 MSVC 环境, 安装 Visual Studio 2022, 语言包加上英文, 建议不要修改安装路径.

如果已经安装过 Visual Studio, 加上英语语言包即可, 注意 Visual Studio 版本不能小于2019.

image-20230701152013869

image-20230701152100703

然后是准备 boot-jdk: jdk 编译时需要另一个 jdk 提供支持, 该 jdk 称为 boot-jdk , boot-jdk 的版本要比想要编译的 jdk 的版本刚好低1个大版本. 例如 jdk8 可以作为 jdk9 的 boot-jdk.

如果当前环境变量中的 jdk 已经是你想要编译的版本的 boot-jdk 那就无需准备, 否则, 请去下载对应版本的 jdk.

最后, 下载 jdk 源码, 建议直接下载对应版本的 tag, 也可以 git clone https://github.com/openjdk/jdk.git, 然后 git checkout tag_name.

编译

打开 Cygwin, 进入到要编译的 jdk 目录.

执行:

# configure
bash configure \
--with-boot-jdk=<boot-jdk-path> \
--with-jvm-variants=server \
--with-debug-level=slowdebug \
--with-boot-jdk-jvmargs="-Dfile.encoding=utf-8 -Duser.country=us -Duser.language=en" \
--with-extra-cflags=/utf-8 \
--with-extra-cxxflags=/utf-8

# build
make images

笔者这里想要编译 debug 版本在后续可以进行 debug, 因此增加了 --with-debug-level=slowdebug 参数, 后面参数调整编码避免编译时因为错误编码报错.

更多参数不一一列举, 读者可以通过 bash configure --help 以及翻阅官方文档.

经过漫长的编译后, build 目录下就将出现构建完成后的 jdk.

标签:jdk,windows,boot,编译,Cygwin,版本,--
From: https://www.cnblogs.com/wymc/p/17519393.html

相关文章

  • Windows兼容模式怎么设置?140.210.18.x
    服务器兼容是什么意思?服务器兼容性怎么改?兼容性(compatibility)是指硬件之间、软件之间或是软硬件组合系统之间的相互协调工作的程度。兼容的概念比较广,相对于硬件来说,几种不同的电脑部件,如CPU、主板、显示卡等,如果在工作时能够相互配合、稳定地工作,就说它们之间的兼容性比较好,反之就......
  • 八期day03-反编译工具和hook框架
    一反编译工具1.1常见反编译工具常见的反编译工具:jadx(推荐)、jeb、GDA反编译工具依赖于java环境,所以我们按照jdk1.2JDK环境安装#官方地址:(需要注册-最新java21)https://www.oracle.com/java/technologies/downloads/#下载地址链接:https://pan.baidu.com/s/1JxmjfGhW......
  • gcc/g++ 编译选项详解
    编译步骤gcc与g++区别gcc命令的常用选项编译优化选项-O优化-O1优化-O2-O0-Os-Ofast-Og-Oz-O选项控制特定的优化WarningsReference编译步骤gcc、g++分别是gnu的c&c++编译器。实际上,GCC能够编译三种语言:C、C++和Ob......
  • Swift 多Target预编译Preprocessor Macros中添加字段后不生效处理
    在其中一个Target的PreprocessorMacros中添加字段RVCTAG后,代码判断发现不生效代码逻辑如下#ifPROJECTIDreturntrue#elsereturnfalse#endif还需要在BuildSetting---> Swiftcompiler-CustomFlags--->OtherSwfitFlags中添加对应的宏设置,如下 ......
  • Windows 10 跳过创建账户的方法:
     跳过创建账户的方法:1.在创建账户的前一页,按下shift+f10组合键,启动命令提示符。2.在命令提示符当中输入下面命令:netuseradministrator /active:yes3.按下ctrl+shift+f3重启计算机,然后就可以启用内置账户了,就能够跳过创建账户了。  ......
  • linux-tina-编译篇
    此篇对于网上搜寻的t113内核编译的整合篇:参考链接:芒果派百问网百问网是不能操作文件系统的,即是只读模式。芒果派也多多少少有很多的问题。下载与解压:这里以芒果派为例子,我是用百度盘下载的,git国内的网实在是更新不了。更新之后按照要求解压tarxvzfTinna..   然......
  • windows的cmd批处理命令及powershell (二)
    1、变量设置for/l%%iin(1,1,100)do@echo%%iset/ai=500set/ai=%i%+200echo%i%pause++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++@echooffSETLOCALENABLEDELAYEDEXPANSIONfor/l%%iin(1110)do(set/avar=%%i+2echo!var!......
  • windows共享文件夹权限设置
    权限设置及更改,最好在右键属性里面,在计算机管理,共享文件夹-》共享里面修改,有时候会不生效。windows的凭据修改,在用户注销后才会生效。 ......
  • windows清除访问共享文件夹的登陆信息
    https://jingyan.baidu.com/article/c843ea0b70797e77931e4a96.html 当在命令提示窗口输入netuse命令时,会显示本机缓存的共享登录信息,如果你想切换用户,则可以删除那条缓存的记录即可。 举个例子,如上图显示,假设IP地址是192.168.10.100,则使用netuse\\192.168.10.100 /delete即......
  • 记录炫龙t3 windows10闪屏
    2021.3.25又总是蓝屏难受,不知道什么原因,只能把驱动再次升级一下.历史我的电脑是炫龙的,一开始以为翻车了,电脑总是闪屏,因为是双显,然后就把核显给禁用掉,结果还是不断闪屏,有时候看个电影也闪屏,发现只要GPU使用了百分之10就开始了,难受的要人命,原本打算返修,但是电脑要工作,也......