Windows7 x64使用vs2010编译HotSpot

下载 ============

#OpenJDK(1.8)

#JDK(1.7 x64)

#visual studio2010(64英文)

#cygwin(x64)

也可以直接参考http://www.jikexueyuan.com/course/1949_2.html?ss=1,我并没有下载window sdk

1、OpenJDK: http://hg.openjdk.java.net/

在列表里点击你需要的openjdk,然后里面选择hotspot(也可以直接使用一个github的https://github.com/codefollower/OpenJDK-Research),点击zip下载hotspot压缩包

Windows7 x64使用vs2010编译HotSpot_第1张图片

2、JDK:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

下载和你选择的openjdk hotspot版本较低的的JDK,因为linux安装看到需要低一点版本的做预备jdk(不能是jre,如果hotspot是1.8那可以选择1.7jdk,我调试老是报错之类的也有可能jdk版本问题),然后安装,在电脑环境变量进行设置,将你的JDK安装目录放到环境变量(根目录比如是:D:\development_tools\JDK\jdk1.7_64bit\bin

Windows7 x64使用vs2010编译HotSpot_第2张图片

3、Visual studio 2010 https://my.visualstudio.com/Downloads

在网址搜索2010,找到官方对应版本(我用的是专业版2010),选择英文,不然有可能报错,如果安装了中文版可以修改vs和windows语言环境,重启。

为什么用visualstudio2010,因为你的hotspot里面有个文件写死了compile.make,而且用2010安装,使用2010配置弄好了之后,不需要改那么多文件,再拿你喜欢的vs加载项目既可以了,MSC_VER这个参数是用来定义vs编译器版本。

你进行hotspot编译时候,你需要加载vs根目录的一个vcvars64.bat(32位选择vsvars32.bat,直接使用window的文档搜索功能),加载vs的库,如果vs版本太高就可能编译出问题。

Windows7 x64使用vs2010编译HotSpot_第3张图片

这个地方有可能报错,只需要改成双引号""扩住变量和1600就行,或者直接改成==和去掉if判断,具体make语法我不清楚,高于2010的都会经过这里。

4、cygwin http://www.cygwin.com/

用来模拟linux环境的工具,需要安装hotspot文档需求组件进行下载,直接下载然后按部就班即可,也有可能得要查看openjdk里面文档,选择一些必须的插件进行安装,我选择一个 http://mirrors.163.com/cygwin/ 的镜像,如果拉不下来那个镜像网址,可以直接add这个网址。

下载好了之后有一个需要选择的界面,你需要搜索根据文档需要的一些插件,必须要安装,不然你编译hotspot时候有些成功,有些就会失败,而且需要对应jdk32位或者64位,不然等你编译好了,然后vs运行突然爆出不是有效的32位exe就坑爹了

Windows7 x64使用vs2010编译HotSpot_第4张图片

编译  ============

#修改 create.bat

#cmd进行命令行编译

#vs2010 build jvm

1、修改hotspot的create.bat

找到 *\hotspot\make\windows\create.bat 编辑他,然后找到这个地方把你的 cygwin地址修改

Windows7 x64使用vs2010编译HotSpot_第5张图片

2、命令行编译

就打开cmd敲敲命令行,cygmake的时候必须要看编译信息是否存在error,没有才能安心进行下一步

// 这里是跳到你安装vistualstudio安装路径,*只是文本上表示通配符
cd *\Microsoft Visual Studio 10.0\VC\bin\amd64(VistualStudio\Common7\Tools  32位在这里)

// 运行bat,加载vs的配置环境
vcvars64.bat(vsvar32.bat)

// 如果上面没有改配置文件,需要设置cygmaker的变量,也可以直接在path增加;(分号)添加目录路径
// set HOTSPOTMKSHOME=E:\app\cygwin64\bin

// 如果是下载openjdk就跳到hotspot里面,然后进行编译,需要加上jdk的根目录,jdk版本需要低点
cd *\hotspot\make\windows create *\java\jdk1.7.0_144

3、visual studio build

打开vs2010将打开生成的 *\hotspot\build\vs-i486\jvm.vcxproj,等待这里加载完毕

Windows7 x64使用vs2010编译HotSpot_第6张图片

加载之后,对项目进行build即可,然后配置好相应的命令就可以愉快地玩耍了

编译其实也有一堆问题,下面已经列出。

Windows7 x64使用vs2010编译HotSpot_第7张图片

4、初步调试

我换了个2017(可以更高版本)来调试,然后编译完全通过之后,可以进行我们最基础的java运行命令行配置

先打开属性

Windows7 x64使用vs2010编译HotSpot_第8张图片

然后配置好class执行文件和class路径,进行debugger即可

Windows7 x64使用vs2010编译HotSpot_第9张图片

 

问题:

1、HOTSPOT_RELEASE_VERSION=""21.0-b17-internal"多了个双引号问题

解决方法: https://blog.csdn.net/qq_28033719/article/details/106426018

2、no 'object' file generated 警告当错误

解决方法: https://blog.csdn.net/qq_28033719/article/details/106426078

3、windows syntax error: unexpected end of file WINDOW系统处理shell脚本问题

解决方法: https://blog.csdn.net/qq_28033719/article/details/106426117

4、外部库引用出错,vs2010添加外部dll

解决方法: https://blog.csdn.net/qq_28033719/article/details/106426142

5、命令行编译时出错:fatal error U1045: spawn failed : Invalid argument

https://blog.csdn.net/qq_28033719/article/details/106581536

你可能感兴趣的:(Java,HotSpot)