美文网首页
自己动手编译jdk

自己动手编译jdk

作者: 止水_8b0d | 来源:发表于2019-01-19 21:41 被阅读0次

    在读《深入理解JAVA虚拟机》的时候需要进行自己手动编译jdk,在经过了无数次的尝试之后终于编译成功了,先上成果图:

    编译成功结果图

    一、需要进行准备的软件包括:

    1、ant

      用于执行java代码中的ant脚本,可以选择在https://archive.apache.org/dist/ant/binaries/进行下载(网速可能会很慢)1.8.2版本,高一点版本的暂时没有进行尝试,PS:如果网速太慢的话可以选择在某盘搜索一下资源。

    2、openjdk

    openjdk选择1.7的版本进行编译,下载地址:https://download.java.net/openjdk/jdk7u6/promoted/b24/openjdk-7u6-fcs-src-b24-28_aug_2012.zip,在下载完成之后对压缩包进行解压。

    3、jdk

    jdk的版本选用1.6版本的JDK,如果选择高版本的JDK时可能会出现ClassNotFound的操作,这个问题的原因可能为版本太高的问题,所以选择使用1.6的版本。

    4、centos 7

    二、配置编译环境

    yum install -y mercurial

    yum install -y ant ant-nodeps

    yum install -y libX11* libX*

    yum install -y libXi-devel libXtst-devel libXt-devel freetype* 

    yum install -y alsa-lib-devel cups-devel

    yum install -y gcc gcc-c++

    三、开始编译

    1、在openjdk的目录下新建一个脚本文件。具体内容如下:

    export LANG=C

    export ALT_BOOTDIR=/usr/java/jdk1.6.0_45 #当前jdk的路径

    export ALT_JDK_IMPORT_PATH=/usr/java/jdk1.6.0_45

    export ALLOW_DOWNLOADS=true

    export HOTSPOT_BUILD_JOBS=4

    export ALT_PARALLEL_COMPILE_JOBS=4

    export SKIP_COMPARE_IMAGES=true

    export USE_PRECOMPILED_HEADER=true

    export BUILD_LANGTOOLS=true

    #export BUILD_JAXP=false

    export BUILD_JAXWS=false

    #export BUILD_CORBA=false

    export BUILD_HOTSPOT=true

    export BUILD_JDK=true

    export DISABLE_HOTSPOT_OS_VERSION_CHECK=ok

    export SKIP_DEBUG_BUILD=false

    export SKIP_FASTDEBUG_BUILD=true

    export DEBUG_NAME=debug

    BUILD_DEPLOY=false

    BUILD_INSTALL=false

    export ALT_OUTPUTDIR=/home/java/openjdk/build   #需要进行输出的文件目录

    unset JAVA_HOME

    unset CLASSPATH

    make sanity

    具体脚本的含义在这里不做说明了,大家可以去看书即可。

    编译该脚本,如果出现Sanity check passed字样则代表这编译成功。

    在编译检查完成之后就可以真正的进行编译了,在之前新建的脚本最后加入

    make sanity && make 2>&1 | tee $ALT_OUTPUTDIR/build.log

    在一次进行编译,可能会出现以下错误:

    java.lang.RuntimeException: time is more than 10 years from present: 1136059200000,

    需要到openjdk以下路径/jdk/src/share/classes/java/util/CurrencyData.properties对配置文件进行修改,将里边所有的时间修改成近10年的时间即可。

    编译成功的话就可以出现图片中的提示。

    在进行编译完成之后可以进行测试,在输出的文件目录中的/j2sdk-image/bin文件夹中执行java -version,如果出现以下提示则证明编译成功。

    编译成功

    相关文章

      网友评论

          本文标题:自己动手编译jdk

          本文链接:https://www.haomeiwen.com/subject/mrmzdqtx.html