实战自己编译JDK

来源:互联网 发布:美工字体怎么写 编辑:程序博客网 时间:2024/06/08 09:46

编译安装OpenJDK

环境准备

Linux ubuntu 4.2.0-27-generic #32~14.04.1-Ubuntu SMP Fri Jan 22 15:32:26 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
openjdk-7u75-src-b13-18_dec_2014.zip

安装依赖的工具

sudo apt-get install build-essential gawk m4 libasound2-dev libcups2-dev libxrender-dev xorg-dev xutils-dev x11proto-print-dev binutils libmotif3 libmotif-dev ant libxt-dev libxtst-dev

安装BootJDK

sudo apt-get build-dep openjdk-7
安装好后默认路径在/root/tool/jdk

测试环境变量配置

#BOOT_JDK的路径export ALT_JDK_IMPORT_PATH=/root/tool/jdkexport ALT_BOOTDIR=/root/tool/jdkexport LANG=C unset JAVA_HOMEunset  CLASSPATHexport BUILD_JAXWS=falseexport BUILD_JAXP=falseexport ALLOW_DOWNLOADS=trueexport DISABLE_HOTSPOT_OS_VERSION_CHECK=okmake sanity
结果出现Sanity check passed,表示测试通过。
测试过程中可能出现*** This OS is not supported:" `uname -a`; exit 1; 可寻找openjdk/hotspot/make/linux下的Makefile文件,在SUPPORTED_OS_VERSION中加入当前OS Version或者注释掉check_os_version代码段。

编译安装OpenJDK

在执行以下命令前,先去openjdk/jdk/src/share/classes/java/util/CurrencyData.properties文件,将其中所有的10年前日期改为10年以内的,否则会报错:time is more than 10 years from present。
#BOOT_JDK的路径export ALT_JDK_IMPORT_PATH=/root/tool/jdkexport ALT_BOOTDIR=/root/tool/jdkexport LANG=Cunset JAVA_HOMEunset  CLASSPATHexport ALLOW_DOWNLOADS=trueexport USE_PRECOMPILED_HEADER=trueexport SKIP_DEBUG_BUILD=falseexport SKIP_FASTDEBUG_BUILD=trueexport WARNINGS_ARE_ERRORS=falseexport DEBUG_NAME=debug export DISABLE_HOTSPOT_OS_VERSION_CHECK=okmake all ALLOW_DOWNLOADS=true WARNINGS_ARE_ERRORS=
该编译过程可能会持续20min左右。

编译完成后,会在openjdk目录下生成build目录,里面包含两个目录linux-amd64和linux-amd64-debug。这两个即为编译好的JDK。

在IDE工具中进行源码调试

项目创建与调试

首先下载安装NetBeans8.02,支持C/C++的那个版本;
新建项目:




一直下一步直到finish完成。
右击项目-->Properties

修改Build中的Make的Build Command
${MAKE} -f Makefile clean jvmg ALT_BOOTDIR=/usr/lib/jvm ARCH_DATA_MODEL=64 LANG=C
其中参数ALT_BOOTDIR是指BootJDK的目录

修改Run中的参数
#Run Command/home/zxl/Downloads/openjdk/hotspot/build/linux/linux_amd64_compiler2/jvmg/gamma Queens#RunDirectory/home/zxl/Downloads/openjdk/hotspot/build/linux/linux_amd64_compiler2/jvmg#EnvironmentLD_LIBRARY_PATH=/home/zxl/Downloads/openjdk/hotspot/build/linux/linux_amd64_compiler2/jvmgJAVA_HOME=/home/zxl/Downloads/openjdk/build/linux-amd64CLASSPATH=..:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:/home/zxl/Downloads/openjdk/hotspot/build/linux/linux_amd64_compiler2/jvmg
现在即可F5运行程序或Ctrl+F5调试程序了,运行结果:

可能出现的错误

缺少Fortran支持:使用apt-get install gfortran,然后在tools--options--c/c++--build tools中设置fortran Compiler为/usr/lib/gfortran

原创粉丝点击