搭建HotSpot虚拟机编译调试环境 博客分类: java基础 javaHotSpot虚拟机
一.HotSpot和Open JDK编译概述
1.Open JDK与Oracle JDK的关系
2.OpenJDK6、7、7u和8几个项目之间的关系
3.OpenJDK源码获取方式
a.通过Mercurial代码版本管理工具从Repository中直接取得源码
b.从Source Bundle Releases页面取得打包好的源码
源码地址:
Open JDK7:http://download.java.net/openjdk/jdk7/
Open JDK8:http://download.java.net/openjdk/jdk8/
二.构建HotSpot虚拟机编译环境
建议在编译实战的过程当中,采用英文版的操作系统和英文版的Visual Studio来完成编译。由于OpenJDK的mkFile里面许多判断版本以及路径的地方都使用了命令行的输出做为判断依据,由于相同软件在中文环境下和英文环境下它的输出内容不一样,在中文版本下经常会导致我们不得不通过修改mkFile才能让编译进行下去的情况,而在英文环境下则没有这些问题。如果不使用虚拟机并且当前安装的系统是中文版系统,务必在控制面板当中把当前系统的所在区域调成英国,以保证编译过程的正常完成。
1.环境搭建主要步骤
下载Open JDK的源码。通过Repositories来了解Open JDK进程的变化是最完整的,比看什么都来的实在,但主要有两个缺点:一个是它的源码管理软件是SCN,不主流;另一个是网络带宽限制,克隆Repositories需要很长时间,且经常断线。因此在这采用直接下载源码Source来编译。
准备一个较新版的JAVA IDE工具Eclipse,如下所示:
a.安装Visual Studio 2010
对于编译HotSpot而言,使用免费版就足够,在Open JDK的编译文档当中,提示已经在Visual Studio 2003和Visual Studio 2010上测试过,实际经验采用Visual Studio 2012或Visual Studio 2013也是能正常完成编译的,对于Visual Studio 2015由于刚刚发布,还并未尝试。
b.安装Windows SDK7.1
c.安装引导JDK(用于编译Open JDK之中使用Java编写的源码)
d.安装CygWin软件
在Windows平台下建设一个类似于Linux的命令行环境,以保证虛拟机之中使用C、C++所写的代码,它们的mkFile文件能够正常的运行。
根据自已操作系统是32位的还是64位的,下载不同的Cygwin版本。
安装时打开Open JDK中的说明,下载对应的Package。
e.构建环境变量
f.生成VS工程文件
三.跟踪调试HotSpot虚拟机源码
建立研究Java虚拟机所必需的实验环境,给研究JVM和Java技术体系提供了一条最贴近本质的道路。直接阅读HotSpot源码可能比阅读书籍教程的门槛要高一些,但确是深入理解Java虚拟机的必经之路。