CentOS编译openjdk

编译openjdk

1. 下载openjdk源码

openjdk的官网是OpenJDK (java.net)

在网站左侧就能看到它的源码位置的链接

CentOS编译openjdk

从图上可以看到,它的源码在两个位置有托管,Mercurial、GitHub这两个网站都有。我们点击GitHub,进去到它GitHub的位置。

CentOS编译openjdk

上图第一个就是openjdk的仓库地址了 。

CentOS编译openjdk

选择HTTPS,复制地址。

下一步,登录码云(没账号的可以先创建一个),在边上有个+的图标,点开就可以看到二级菜单有个从GitHub/GitLab导入仓库

CentOS编译openjdk

上面Git仓库URL,填入从GitHub复制的地址,https://github.com/openjdk/jdk.git ,仓库名字可以自己写一个。完了之后点击导入,就可以将openjdk的源码导入到码云上来,导入后和GitHub就都是一样的。

选择导入GitHub仓库的话,可以关联自己的GitHub账号,把自己GitHub的仓库也导入过来。

最后,我们就可以从码云上下载openjdk的源码了,再也不是龟速了。我本地下载6MB/s,不到1分钟就下载完成了。

CentOS编译openjdk

我本次选的是jdk-11+25这个分支。

CentOS编译openjdk

我本地下载下来的是openjdk-jdk-11+25.zip

2. 环境准备

  1. 需要一个linux(windows也可以,不过好像比较麻烦,我没试过。我本次是用Linux)环境。我是虚拟机安装的CentOS7。具体的版本号如下图

CentOS编译openjdk

  1. 根据阿里云设置下软件镜像源。centos镜像-centos下载地址-centos安装教程-阿里巴巴开源镜像站 (aliyun.com)

  2. 在环境中安装jdk并设置环境变量(不用卸载系统自带的JDK,直接可以使用压缩版的jdk解压后,设置相关的环境变量就可以)。

     vim ~/.bashrc
    
    #在~/.bashrc中添加下面java环境变量
    JAVA_HOME=/root/openjdk/jdk-11.0.10   #java目录
    CLASSPATH=$JAVA_HOME/lib
    PATH=$JAVA_HOME/bin:$PATH
    export PATH JAVA_HOME CLASSPATH
    
    
    source  ~/.bashrc   #使环境变量生效
    

    jdk的版本不能小于要编译的jdk版本-1,这个在编译指导中有写,具体自己看吧。

CentOS编译openjdk

我本次使用的是jdk11,具体的版本号是如下图。

CentOS编译openjdk

4.将下载的openjdk的源码的压缩包(我本次的压缩包是openjdk-jdk-11+25.zip)上传到CentOS7服务器上,后续所有的工作就都在CentOS7上执行了。


到这里,所有的准备工作就完成了,下一步就开始编译openjdk了。

3. 编译openjdk

  1. 首先在shell中输入java -version,确实当前默认的java就是我们自己安装的。

  2. 解压上传的openjdk源码压缩包。

    yum install zip unzip  #安装解压缩软件
    unzip openjdk-jdk-11+25.zip   #解压openjdk源码包
    
  3. 源码包中有个README,打开可以看到编译的帮助文档是在doc目录下的building文件。上面2.3中的需要的jdk的版本也是在这个building的帮助文档里。

CentOS编译openjdk

  1. 编译openjdk使用make来完成的,所以需要先安装make(很多服务器都是自带make的,如果自带了,那就不用再安装了.)。

    yum install make  #安装make,我本次用的CentOS就自带了
    
  2. 下一步就是根据building中的指导来编译了。

    bash ./configure --help 这个命令可以来查看各种编译选项。

    bash ./configure --with-debug-level=slowdebug  --with-target-bits=64 
    make
    

    我本次就是使用上面两行命令来编译的。


    编译过程中需要的软件也不必提前安装,安装过程中如果发现缺软件,会有提示。如下图,根据提示安装相关软件就可以了。

    下面就是我本地实际安装的软件了。都是根据错误提示安装的。

    sudo yum install libXtst-devel libXt-devel libXrender-devel libXi-devel
    sudo yum install cups-devel
    sudo yum install fontconfig-devel
    sudo yum install alsa-lib-devel
    

    CentOS编译openjdk

​ configuration成功的话,会有如下图

CentOS编译openjdk

​ make成功的话会有如下图

CentOS编译openjdk

  1. 如果编译成功,会在build/linux-x86_64-normal-server-slowdebug/jdk这个目录下生成我们编译的openjdk。

    执行如下命令,验证我们的编译结果。

    cd build/linux-x86_64-normal-server-slowdebug/jdk
    cd bin
    ./java -version
    

    CentOS编译openjdk


到这里,整个openjdk的编译就结束了。

上一篇:软件工程——PairProject


下一篇:PairProject——结对编程