在windows下构建OpenJDK是一件很痛苦的事情,需要不断的解决各种各样的问题,同时官方的文档也不够周全,各种坑,很考验耐心。。
以Java8构建为例,首先需要获取到源码。有两种方式,一种是从版本服务器上拉取,非常耗时,而且中间不断发生网络错误,可以说不尝试个10到20次都没法完全把代码拉下来;另外一种是直接从官方下载已经打好的源码包,代码不是很新,但是方便一些,可以一次性下载完毕。
下载好源码之后,需要准备编译环境,在windows下需要:
1. Cygwin //提供类UNIX环境
2. VS2010 //强烈建议英文版,否则在执行configure时还需要人工介入去解决不合理的报错
3. freetype //这个官方文档没有提到,需要自己编译出对应的dll和lib文件,或者从github上面下载编译好的
4. 一个已安装好的JDK,作为bootstrap使用 //如果编译Java8,需要至少Java 7 update 7之后的版本,注意不要使用Java8
以下截图为官方提供的安装Cygwin时需要另外勾选的工具:
编译步骤:
1. 执行bash ./configure --with-freetype=/cygdrive/d/build/freetype 这里需要指定freetype路径
2. make all 这个过程很漫长,需要1小时,下图是在我本地的各模块编译耗时,编译完成后会生成一个image目录,可以直接拿来用
在vs中进行调试,可以看到jvm中创建一个JavaThread去调用Java的Main方法。。
做个简单的总结:上述过程省略了很多细节和问题,因为碰到的问题实在不少。总而言之,如果要在windows下完成OpenJDK的构建,需要事先做好被反复折腾的心理准备。。