(1)JVM——在 Ubuntu 上手动编译 OpenJdk12

本人个人博客网站,欢迎访问:学教府

一、简述

  1. 介绍:最近开始看《深入理解Java虚拟机第三版》,为了自己以后能方便回忆,以及加深理解,特写文章以记之。本篇博客主要是实现使用在 Ubuntu 系统上自己编译 OpenJdk,在后面的学习中会用到。

二、准备工作

  1. 安装 Ubuntu 操作系统:我是在 windows 系统上使用 VMware 安装了 Ubuntu 18.04.3 LTS 。这个安装就不介绍了,网上能搜到很多文章,此处贴一个博客地址是首次安装后,实现 root 用户登录以及 ssh 访问:解决Ubuntu18.04不能用Xshell使用root用户登录。我的虚拟机配置如下:
    (1)JVM——在 Ubuntu 上手动编译 OpenJdk12_第1张图片

  2. 下载 OpenJdk12 源码:可以网上搜索,我就直接贴出我的百度云分享:https://pan.baidu.com/s/1Y12ba3RTzWxt8C9wvNcjPQ 提取码:xk6r

  3. 安装第三方库:编译过程中需要使用 GCC、FreeType、CUPS等,包括编译 OpenJdk 版本的上一个版本(因为源码有些是 Java 代码写的,需要 jdk 来编译),此处是安装 OpenJdk11。具体的安装内容如下

    工具 库名称 安装命令
    GCC 官方推荐 GCC7.8 sudo apt-get install build-essential
    FreeType The FreeType Project sudo apt-get install libfreetype6-dev
    CUPS Common UNIX Printing System sudo apt-get install libcups2-dev
    X11 X Windows System sudo apt-get install libx11-dev libxext-dev libxrender-dev libxrandr-dev libxtst-dev libxt-dev
    ALSA Advanced Linux Sound Architecture sudo apt-get install libasound2-dev
    libffi Portable Foreign Function Interface Library sudo apt-get install libffi-dev
    Autoconf Extensible Package of M4 Macros sudo apt-get install autoconf
    OpenJdk11 OpenJdk11 sudo apt-get install openjdk-11-jdk

三、进行编译

  1. 上传 OpenJdk12 源码:下载得到的源码是 zip 包,可以通过 Xftp 等工具上传到 Ubuntu 系统上。因为要解压压缩包,因此需要安装 unzip 工具,同时需要安装 zip 工具(如果不安 zip ,在编译检查时会报缺失如下图)
    (1)JVM——在 Ubuntu 上手动编译 OpenJdk12_第2张图片
    安装命令如下:
    # 安装
    apt-get install zip unzip
    # 解压文件
    unzip    xxxxx.zip
    
  2. 编译检查及配置:进入解压后的源码目录,如下图。
    (1)JVM——在 Ubuntu 上手动编译 OpenJdk12_第3张图片
    // 编译FastDebug版,仅含Server模式的HotSpot虚拟机
    bash configure --enable-debug --with-jvm-variants=server
    
    如果检查有缺失的项目,会进行提示,并给出解决安装的命令,只需要直接使用就行。我在检查时报了如下的缺失
    (1)JVM——在 Ubuntu 上手动编译 OpenJdk12_第4张图片
    此时按提示执行命令即可。当执行检查成功时,可以看到下图成功的显示
    (1)JVM——在 Ubuntu 上手动编译 OpenJdk12_第5张图片
  3. 执行编译:此时我执行的是 “make all” 命令,即编译了 product、docs、test。此处的 make 有好几种选择可以自行查询。特别注意:如果多次编译,或者目录结构成功产生后又再次修改了配置,必须先使用 “make clean” 和 “make dist-clean” 命令清理目录,才能确保新的配置生效。
    # 编译
    make all
    
    该命令执行后大约要等 20 分钟左右,成功后如下图
    (1)JVM——在 Ubuntu 上手动编译 OpenJdk12_第6张图片
  4. 验证:此时进入源码目录下的 build/OpenJdk配置名称/jdk ,可以看到编译完成后的 jdk 结果,此处的内容可以直接复制出来使用,就是一个完整的 jdk。目录如下图:
    (1)JVM——在 Ubuntu 上手动编译 OpenJdk12_第7张图片
    进入 bin 目录,执行如下的查看版本命令:
    ./java -version
    
    可以看到我们编译的 OpenJdk 版本信息
    编译完成的版本信息
    到此我们手动编译 OpenJdk 就完成了,后面文章将会介绍调试源码。

你可能感兴趣的:(JVM)