hotspot源代码包含在openjdk7中
openjdk7包含了jdk的Java代码,所以要用jdk6对这部分代码进行编译。(有点类似于gcc高版本代码要用gcc低版本编译一样)
准备
openjdk 7 源代码
强烈建议初学者,用这个jdk源代码,按照下面的教程配置。其他源代码编译时,可能会出现各种古怪问题
工作环境
Ubuntu 14.04
安装依赖项
sudo apt-get install build-essential gawk m4 openjdk-6-jdk libasound2-dev libcups2-dev libxrender-dev xorg-dev xutils-dev X11proto-print-dev binutils libmotifs3 libmotif-dev ant解压缩openjdk源代码
我把它放到了 Home目录下面了
Hotspot编译前配置:
cd 进入openjdk源代码目录,切换root用户
导入以下环境变量:
export LANG=C export ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk-i386 export ALT_JDK_IMPORT_PATH=/usr/lib/jvm/java-6-openjdk-i386 export ALLOW_DOWNLOADS=true export HOST_BUILD_JOBS=4 export USE_PRECOMPILED_HEADER=true export BUILD_LANGTOOLS=true export BUILD_JAXP=true export BUILD_JAXWS=true export BUILD_CORBA=true export BUILD_HOTSPOT=true export BUILD_JDK=true export BUILD_INSTALL=false export ALT_OUTPUTDIR=/home/zxf/openjdk7/build unset JAVA_HOME unset CLASSPATH export WARNINGS_ARE_ERRORS=false export SKIP_DEBUG_BUILD=false export SKIP_FASTDEBUG_BUILD=true export DEBUG_NAME=debugALT_OUTPUTDIR=/home/zxf/openjdk7/build,修改成你的openjdk7所在的路径的
ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk-i386,ALT_JDK_IMPORT_PATH=/usr/lib/jvm/java-6-openjdk-i386是java6的路径,一般不需要修改,装完 openjdk-6-jdk一般就在这个路径上
Hotspot编译前检查:
make sanity按照上面环境变量配置后,make sanity 一般不会出问题
Hotspot编译:
make DEBUG_BINARIES=true一定要加上DEBUG_BINARIES=true
半个小时基本就能搞定:
Hotspot编译后位置:
build和build-debug目录里面的东西就是啦。