实战自己编译JDK

本文详细介绍了如何在Ubuntu系统中编译OpenJDK,包括环境准备、安装依赖、BootJDK的安装和环境变量配置,以及编译完成后的JDK位置。同时,还涵盖了在IDE中创建项目和调试OpenJDK源码的步骤及可能遇到的问题。

编译安装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/jdk
export ALT_BOOTDIR=/root/tool/jdk

export LANG=C 
unset JAVA_HOME
unset  CLASSPATH
export BUILD_JAXWS=false
export BUILD_JAXP=false
export ALLOW_DOWNLOADS=true
export DISABLE_HOTSPOT_OS_VERSION_CHECK=ok
make 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/jdk
export ALT_BOOTDIR=/root/tool/jdk

export LANG=C
unset JAVA_HOME
unset  CLASSPATH
export ALLOW_DOWNLOADS=true
export USE_PRECOMPILED_HEADER=true
export SKIP_DEBUG_BUILD=false
export SKIP_FASTDEBUG_BUILD=true
export WARNINGS_ARE_ERRORS=false
export DEBUG_NAME=debug 
export DISABLE_HOTSPOT_OS_VERSION_CHECK=ok
make 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
#Environment
LD_LIBRARY_PATH=/home/zxl/Downloads/openjdk/hotspot/build/linux/linux_amd64_compiler2/jvmg
JAVA_HOME=/home/zxl/Downloads/openjdk/build/linux-amd64
CLASSPATH=..:$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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值