• 自己编译JDK


    环境说明

    操作系统:CentOS 6.8

    OpenJDK:openjdk7u

    BootstrapJDK:jdk1.7

    安装Bootstrap JDK(如果需要的话,但是测试时尽量不用1.8)

    因为OpenJDK各个组成部分有的是C、C++编写的,但更多的是Java自身实现的,所以需要一个Oracle JDK官方称这是''Bootstrap JDK''

    1、Oracle官网下载Linux版本的JDK

    2、Linux、Windows共享文件将JDK放到Linux的usr/java文件下(先mkdir java)

    3、tar -zxvf  /usr/java/jdk-8u131-linux-x64.tar.gz解压缩jar包

    4、设置Linux的环境变量

      export JAVA_HOME=/usr/java/jdk1.8.0_131

      export CLASSPATH=.:/usr/java/jdk1.8.0_131/jre/lib/rt.jar

      export PATH=$PATH:/usr/java/jdk1.8.0_131/bin

    5、java -version验证是否安装成功

    获取OpenJDK源码

    方式一:通过Mercurial代码管理工具从Repositroy中获得   

    yum install -y mercurial
    hg clone http://hg.openjdk.java.net/jdk7u/jdk7u-dev cd jdk7u-dev chmod 755 get_source.sh ./get_source.sh

    方式二:直接下载官方打包好的源码 到本地直接解压即可,地址http://jdk7.java.net/source.html

    构建编译环境

    OpenJDK包括虚拟机Hotsport、JDK API、JAXWS、JAXP等。需要各种编译依赖,包括C++,C的编译环境,编译Java的Bootstrap JDK,还有用于执行java代码的Ant脚本等。

    yum install build-essential gawk m4 libasound2-dev libcups-dev libxrender-dev xorg-dev xutils-dev x11proto-print-dev binutils libmotif3 libmotif-dev ant

    还应添加

    yum install -y ant*
    yum install -y libX11* libX* yum install -y libXi-devel libXtst-devel libXt-devel freetype* yum install -y alsa-lib-devel cups-devel

    设置环境变量

    必须设置的有两个变量LNAG、ALT_BOOTDIR

    # 设定语言选项否则抛异常
    export LANG=C
    
    # 设置Bootstrap JDK的安装路径灵活调整
    export ALT_BOOTDIR=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.151.x86_64
    
    # 允许自动下载依赖
    export ALLOW_DOWNLOADS=true
    
    # 并行编译的线数,设置和cpu的数量一致即可
    export HOTSPOT_BUILD_JOBS=4
    export ALT_PATALLER_COMPILE_JOBS=4
    
    export SKIP_COMPARE_IMAGES=true
    
    # 使用预编译头文件,不加这个编译会更慢一些
    export USE_PRECOMPILED_HEADER=true
    
    # 要编译的内容
    export BUILD_LANGTOOLS=true
    export BUILD_HOTSPOT=true
    export BUILD_JDK=true
    
    # 把它设置为false可以避开javaws和浏览器Java插件之类的部分的build
    BUILD_DEPLOY=false
    BUILD_INSTALL=false
    
    # 编译结果所存放的路径
    export ALT_OUTPUTDIR=/usr/java/openjdk/jdk7u-dev/build
    
    # 这两个环境变量需要去掉
    unset JAVA_HOME
    unset CLASSPATH

    使用 make sanity 检查设置是否正确,如果正确返回Sanity check passed

     编译OpenJDK

    开始编译

      在openjdk目录下,输入make命令

    检查编译结果

      进入OpenJDK源码下的build/j2sdk-image目录这是整个jdk完整编译结果,复制到JAVA_HOME下就可以作为一个完整的jdk使用。 

    cd /usr/java/openjdk/jdk7u-dev/build/j2sdk-image
    export JAVA_HOME=/usr/java/openjdk/jdk7u-dev/build/j2sdk-image
    export PATH=$PATH:$JAVA_HOME/bin
    java -version

    启动虚拟机

    手动编辑env.sh增加一个变量

    LD_LIBRARY_PATH=.:${JAVA_HOME}/jre/lib/amd64/native_threads:${JAVA_HOME}/jre/lib/amd64:
    export LD_LIBRARY_PATH

    使生效env.sh

    source ./env.sh
    ./gamma -version

     可参考http://blog.csdn.net/u013190088/article/details/71703255

  • 相关阅读:
    日志记录的作用和方法 java
    log4j自动加载原理
    java反射中的动态代理机制(有实例)
    万能的ctrl+shift+F(Element 'beans' cannot have character [children], because the type's content type is element-only.错误)
    Spring的@ModelAttribute注解
    Spring MVC 的@RequestParam注解和request.getParameter("XXX")
    SpringMVC 示例实战教程
    ecshop教程:重置后台密码MD5+salt
    github常见操作和常见错误!错误提示:fatal: remote origin already exists.
    ECShop函数列表大全
  • 原文地址:https://www.cnblogs.com/BINGJJFLY/p/7601719.html
Copyright © 2020-2023  润新知