实战自己编译JDK

xiaoxiao2021-02-28  120

编译安装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
转载请注明原文地址: https://www.6miu.com/read-43826.html

最新回复(0)