Windows 10 下编译 64 位 OpenJDK 8
软件版本概览
以下是为编译 64 位 OpenJDK 8 所准备的软件版本信息:
-
操作系统:Windows 10
-
Cygwin:版本 3.5.4-1
-
Visual Studio:2010 英文版
-
freetype:版本 2.7
-
引导 JDK:版本 7
-
编译目标 OpenJDK 版本:8
安装引导 JDK
首先,从官方网站下载 JDK,并在 Windows 系统上完成安装。安装后,需要配置环境变量 JAVA_HOME
,并在系统的 Path 变量中添加 %JAVA_HOME%\bin
。配置完成后,通过在命令提示符(cmd)中输入 java -version
命令来验证 JDK 是否已正确安装,应显示相应的版本信息。
安装 Cygwin
从官方网站下载 Cygwin 安装程序,并在 Windows 上进行安装。在安装过程中,设置安装路径(例如:E:\cygwin64),并选择必要的命令行工具,包括 binutils
、cpio
、m4
、make
、procps-ng
、unzip
和 zip
。安装完成后,将 E:\cygwin64\bin 添加到系统的 Path 环境变量中。
安装 Visual Studio 2010
下载并安装 Visual Studio 2010 英文版,特别注意安装路径中不能包含空格。在安装过程中,只需选择 Visual C++ 组件。安装后,将 E:\MicrosoftVisualStudio10.0\VC\bin 添加到系统的 Path 环境变量中。
编译 freetype
下载并解压 freetype 源码。使用 Visual Studio 2010 打开 freetype 源码目录下的 builds\windows\vc2010\freetype.sln 解决方案文件,并配置项目以生成静态链接库(.lib)和动态链接库(.dll)。编译完成后,将生成的 freetype.lib 和 freetype.dll 文件拷贝到 freetype 源码目录下的 lib 文件夹中。
编译 OpenJDK 8
下载并解压 OpenJDK 8 源码。在 OpenJDK 8 源码目录下执行配置脚本,并开始编译过程。编译成功后,将在 build 目录下生成 windows-x86_64-normal-server-fastdebug 目录,其中包含编译完成的 JDK。
编译遇到的问题及解决办法
Cygwin 版本过旧
如果遇到 "Your cygwin is too old" 的错误,需要修改 OpenJDK 8 源码目录下的 common\autoconf\generated-configure.sh 脚本中的 Cygwin 版本限制。
时间校验错误
如果遇到 "time is more than 10 years from present" 的错误,需要修改 OpenJDK 8 源码目录下的 jdk\make\src\classes\build\tools\generatecurrencydata\GenerateCurrencyData.java 类中的校验逻辑。
images-only 错误
如果遇到 "images-only" 错误,需要修改 OpenJDK 8 源码目录下的 jdk\make\CreateJars.gmk 文件,确保文件中的回车符号正确。
Windows 10 下单步调试 OpenJDK 8
创建调试项目
修改 OpenJDK 8 源码目录下的 hotspot\make\windows