-
安装cygwin64 下载地址: https://cygwin.com/setup-x86_64.exe
至少需要安装 autoconf,zip,unzip,make, tar -
安装好JDK12如:
D:/opt/jdk12
-
安装英文版 vs2017 community 版
一定要英文版,否则需要你改半天 common/autoconf/generated-configure.sh 文件
-
下载openJDK13 源码(我在官网尝试下载多次无果,后来在githug上下载的https://github.com/unofficial-openjdk/openjdk/releases)
$hg clone http://hg.openjdk.java.net/jdk/jdk13 src
我把源码放在D:/jdk13/src 目录 -
修改脚本 make\autoconf\toolchain_windows.m4 文件811行(由于某些windows目录包含空格及括号)
修改前:
if test -z “$(ls -d w i t h u c r t d l l d i r / ∗ . d l l 2 > / d e v / n u l l ) " ; t h e n 修 改 后 : i f t e s t − z " with_ucrt_dll_dir/*.dll 2> /dev/null)"; then 修改后: if test -z " withucrtdlldir/∗.dll2>/dev/null)";then修改后:iftest−z"(ls -d “$with_ucrt_dll_dir/”*.dll 2> /dev/null)”; then -
运行configure
打开 cygwin64
$ cd /cygdrive/d/jdk13/src/
配置检查环境
$ bash ./configure --with-target-bits=64 --disable-warnings-as-errors --with-ucrt-dll-dir="/cygdrive/c/Program Files (x86)/Windows Kits/10/Redist/10.0.17763.0/ucrt/DLLs/x64" --with-boot-jdk=/cygdrive/d/opt/jdk12
-
$make images
-
测试
$ ./build/windows-x86_64-server-release/images/jdk/bin/java -version
openjdk version “13-internal” 2019-09-17
OpenJDK Runtime Environment (build 13-internal+0-adhoc…src)
OpenJDK 64-Bit Server VM (build 13-internal+0-adhoc…src, mixed mode, sharing)
补充:
a. vs2017一定要英文版的,除非你非常熟悉 bash 并愿意改配置脚本。
b. /cygdrive/c/Program Files (x86)/Windows Kits/10/Redist/10.0.17763.0/ucrt/DLLs/x64 这个目录可能不同的电脑不一样,按照规则自己找。
c. 为编译jdk我把操作系统当前用户的显示语言和区域全改成了英文。
d. 如果出现src\test\hotspot\gtest\utilities\test_json.cpp 编译错误,直接删除此文件