Win10下编译OpenJDK8
编译环境
编译前准备
Tip: 以下软件的安装和解压目录尽量不要包含中文或空格,不然可能会出现问题
- 安装 Visual Studio 2010 Professional
在windows下编译JDK需要使用Visual Studio 2010 Professional
最好下载英文版的IDE,不然可能会出现问题,下载完成后只用勾选安装C++部分就行
- 准备OpenJDK8
首先下载OpenJDK8,, 下载完成后解压
- 编译JDK环境安装(如果已经安装,跳过此部)
下载完成后配置JDK环境变量(JAVA_HOME、Path、classpath)
- 安装Cygwin
下载最新版的Cygwin后安装,由于默认的安装只会安装一些必要的软件,所以安装过程中需要选择安装一些额外的包,需要的包如下图:
如果已经安装完了Cygwin软件后,想要继续安装其他的软件包,可以再次运行Cygwin的安装程序,在过程中确保其选中了本地的Cygwin安装目录,一直点击下一步后会出现选择安装包的界面。在此我向大家推荐一个架构学习交流圈。交流学习指导伪鑫:1253431195(里面有大量的面试题及答案)里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构等这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多
- 准备FreeType-2.7
-
编译JDK需要用到FreeType,它是一个字体渲染库,官方文档中没有提及,但它是必须的。 -
最好使用2.7版本的,我先前使用较新版本的会出现问题。 -
运行Visual Studio 2010,依次点击 File -> Open -> Project/Solution -
选择打开 freetype-2.7\builds\windows\vc2010\freetype.sln 文件 -
选中项目后右击选择Properties,弹出窗口后操作如下图:
点击应用后再点击确定关闭窗口,右击项目,点击 Build 按钮后成功编译出lib文件。
再次右击项目,点击 Properties按钮,弹出窗口。
点击应用后再点击确定关闭窗口;右击项目,点击 Build 按钮后成功编译出dll文件。
在 freetype-2.7/ 目录下新建 lib 目录 将 freetype-2.7\objs\vc2010\x64\ 目录下的 freetype.lib 和 freetype.dll 两个文件拷贝到lib目录下
开始编译
- 生成编译配置脚本
运行Cygwin,cd 进入OpenJDK8的根目录
Tip :Cygwin中的目录可以直接用Windows的目录标记方式,比如:‘D:\DirName\file.txt’,单必须使用单引号包围,也可以使用类似linux的形式:如: /cygdrive/d/DirName/file.txt,推荐使用后一种方式兼容性较好。
输入如下命令:
./configure --with-freetype=你本机路径/freetype-2.7/ --with-target-bits=64 --enable-debug
注意以上的freetype路径替换成你本机上的路径,运行成功后显示如下:
- 编译JDK
Cygwin切换到Open JDK根目录下,执行如下命令
make all
命令执行后会开始编译,编译过程可能比较久,具体看机器性能,编译成功后显示如下:
- 验证编译结果
在这里仅简单验证一下,官方说需要用jtreg来进行回归测试,但该测试比较麻烦和耗时所以就先忽略运行 cmd.exe ,进入目录 openjdk8\build\windows-x86_64-normal-server-fastdebug\jdk\bin,依次输入命令:
javac -version
java -version
失败问题处理
-
提示cygwin太老,但使用的cygwin确实是1.7版本以后的版本,提示如下如图:
-
编译images库时失败 执行编译到images相关库的时候会出错
在这里插入图片描述错误信息中显示了一个CreateJars.gmk出错,查阅相关资料后发现是文件中需要加上两个回车符号,也就是 '\r’表示为CR这个符号。
找到文件中如下的地方:
在两个 ‘class$$’ 中间加入回车符号(按下Ctrl + M),如下图:
修改完成后保存,执行 make clean 命令清理后再次执行 make all 编译
|