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

被折叠的 条评论
为什么被折叠?



