1.jdk7下载地址
C++,GCC的库此处略过,缺少什么到网上查资料,yum -y install xxxx
2.openjdk8的下载地址
download.java.net/openjdk/jdk8/promoted/b132/openjdk-8-src-b132-03_mar_2014.zip
3.配置configure
进入到openjdk8的文件夹中,执行 ./configure
4.编译 make all
执行make all 等大概30分钟
5.测试是否安装成功
./build/linux-x86_64-normal-server-slowdebug/jdk/bin/java -version
6.在eclipse上调试hotspot源码
3、在eclipse上调试hotspot源码
3-1、下载eclipse,安装C/C++插件
到官网选择一个合适的eclipse下载:
https://www.eclipse.org/downloads/eclipse-packages/?osType=linux&release=undefined
这里下载的是eclipse-java-neon-1a-linux-gtk-x86_64.tar.gz:
https://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/neon/1a/eclipse-java-neon-1a-linux-gtk-x86_64.tar.gz&mirror_id=1207
这个还没有开发C++的功能,所有解压打开eclipse后,还需要到"help -> Eclipse Maketplace",搜索"c++"找到Eclipse C++ IDE..安装;
安装后,就可以转到C++开发视图界面了,如下:
3-2、导入hotspot工程
File-> New -> Existing Code as Makefile Project
在界面中:
Project Name:hotspot(这个可以自己选择)
Existing Code Location:/root/openjdk/hotspot
Toolchain:选Linux GCC,然后按Finish.
3-3、配置源码调试
右键工程 -> Debug As -> Debug Configurations -> 右键左边的C/C++ Application -> New -> 进入Main选项卡;
在选项卡中:
Project:hotspot(选择导入的hotspot工程)
C/C++ Application:/root/openjdk/build/linux-x86_64-normal-server-slowdebug/jdk/bin/java(编译生成的openjdk虚拟机入口)
Disable auto build:因为不再在eclipse里面编译hotspot源码,所以这里选上它;
然后切换到Arguments选项卡, 输入Java的参数, 我们这里运行上面的Main类, 于是这里填上 "Test"也就是我们要执行的Java程序
然后切换到Environment选项卡, 添加变量:
JAVA_HOME=/root/openjdk/build/linux-x86_64-normal-server-slowdebug/jdk/(编译生成JDK所在目录)
CLASSPATH=.:/root/test (Test类文件所在目录)
点击下面的Apply保存;
3-4、断点Debug
在hotspot源码工程中找到init.cpp, 在95行打个断点;
运行上面配置的Debug, 可以看到顺利调到了断点;
如图:
注意,如果不能进入断点看前面"2-3";
4、配置hotspot调试运行eclipse的java工程
4-1、新建java工程(测试)
新建java工程,在工程新建包,在包中新建Test.java文件,测试程序如下:
- package com.hotspot.test;
- public class Test {
- public static void main(String[] args){
- System.out.println("hotspot test!");
- }
- }
而运行正常,生成了Test.class文件,如下图:
4-2、修改hotspot工程调试参数
在前面的5-3配置源码调试的配置上作如下修改;
Arguments选项卡:
com.hotspot.test/Test
(注意在前面加上包名,然后是运行类)
Environment选项卡, 修改变量:
CLASSPATH=.:/root/workspace/TestHotspot/bin (java工程生成的bin目录,
不包括包名目录)
保存后,点击调试运行hotspot工程,可以看到正常运行了上面的java工程文件,如下: