一、使用VS2010生成HotSpot VM项目
1、将Cygwin64的bin路径加入环境变量Path中,在我这里即C:\Cygwin64\bin
2、进入E:\jvm\jdk8u-dev\hotspot\make\windows,编辑create.bat,line 142:改成自己的cygwin安装目录
3、在cmd窗口执行如下指令
cd E:\jvm\jdk8u-dev\hotspot\make\windows
e:
把Visual Studio 2010目录下VC\bin\amd64\vcvars64.bat拖入CMD窗口,必须是64位的VC环境。
然后执行set HOTSPOTMKSHOME=C:\cygwin64\bin 设置好HOTSPOTMKSHOME环境变量。
接着输入:
create.bat E:\jvm\jdk8u-dev\build\windows-x86_64-normal-server-slowdebug\images\j2sdk-image
执行结果如下:
执行完毕后即会在E:\jvm\jdk8u-dev\hotspot\build\vs-amd64目录生成jvm.vcxproj工程文件。用VS2010打开该工程文件即可。使用F7快捷键即可重新生成jvm.dll。
上面注意了,如果用32位的vcvars32.bat,生成的会是vs-i486,现在多数用户的操作系统都是64位,请不要选错了。
32位的打开下面这个,如果有的话
二、调试java代码
1、用vs2010打开jvm.vcxproj,f7生成解决方案
2、修改工程属性中的启动参数,传入要加载的类名,如下图
命令参数:TestHello,表示带有main函数的java类,
工作目录:E:\myworkspace\test\bin表示java类的编译后class文件目录
带有报名的可以如下写法,都可以
或者-XXaltjvm=$(TargetDir) -Dsun.java.launcher=gamma test/HelloWorld
debug效果如下图
输出结果