Win10下Linux子系统Centos7编译Openjdk12源码

Win10下Linux子系统Centos7编译Openjdk12源码

    • 准备Centos7系统环境
    • 下载openjdk12源码
    • 外部依赖库
    • 安装jdk
    • configure
    • make images
    • 多版本jdk生成
    • jdk验证
    • 注:参考及引用

准备Centos7系统环境

  1. 第一次尝试:在win10上安装VMware虚拟机。首先下载的是15pro版本,因为需要计算机重启,没有再试;然后下载了12pro版本,直接安装完成,使用centos7镜像创建完虚拟机,需要把本地下载的源码文件传入虚拟机中,开始调试vm12与win10的共享文件夹,开启共享文件夹设置之后,发现需要安装虚拟机Tools软件,又开始了处理安装vm tools按钮灰色不能点击的问题,百度中一堆解决方案,需要修改电脑配置,放弃了。。。
  2. 第二次尝试:使用公司服务器开发环境,但发现虽然文件可以上传,但是用户不是sudo组中,没有很多命令的执行权限,不行。
  3. 第三次尝试:使用个人云服务器。借了同事的一个阿里云ECS,最简单的配置,1C2G,基础环境安装完成,在开始configure的时候,时间太长,一直到晚上,阿里云的服务器开始莫名的不稳定,sftp连接自动断开,服务器网络连接超时等情况,算了,不用了。(吐槽:之前公司生产用的阿里云的整套产品,数据库的RCS很大的带宽和服务器配置,但是在晚上监控总报警,晚上业务量少的情况下,服务器的各项性能明显缩水。。。)
  4. 第四次尝试:还是用自己win10的自带虚拟机吧。在程序中开启WSL,在微软APP Store中下载安装Windows Terminal,然后再APP Store中下载linux子系统Ubuntu,然后可以使用了。
  5. 第五次尝试:从Ubuntu到Centos。虽然Ubuntu系统可以使用,但是个人从学习开始到工作环境,一直都是使用的Centos系统,所以还是想试试在WSL中能不能安装Centos。在APP Store中有Centos系统,但是需要¥10,放弃了。在度娘的帮助下,发现了一个针对WSL的管理神器,GitHub上开源的一个软件:LxRunOffline,下载安装之后,可以管理win10中的linux子系统。一个顺带的优点是,把通过APP Store自动安装的Ubuntu从系统盘移动到了非系统盘,又安装了Centos系统。完美!!!参考链接见文章末尾注部分。

下载openjdk12源码

下载方式如下,以下方式任选其一:

  1. 打开openjdk12源码页面https://hg.openjdk.java.net/jdk/jdk12/file/06222165c35f,点击页面左侧zip按钮下载源码包.
  2. 下载他人已有的资源:链接: https://pan.baidu.com/s/1J7hhk1458uQ9yncUcXsWfQ 提取码: 7sc5
  3. 通过openjdk的GitHub仓库下载:https://github.com/unofficial-openjdk/openjdk
  4. 在服务器上通过mercurial代码管理工具在openjdk代码仓库中下载
    4.1 yum provides hg
    4.1 yum install mercurial -y
    4.3 hg clone http://hg.openjdk.java.net/jdk/jdk12

外部依赖库

根据源码包中doc目录下building文档中的说明,准备环境,以下命令依次操作。

  1. sudo yum -y groupinstall "Development Tools"
  2. sudo yum -y install freetype-devel
  3. sudo yum -y install cups-devel
  4. sudo yum -y install libXtst-devel libXt-devel libXrender-devel libXrandr-devel libXi-devel
  5. sudo yum install -y libasound2-dev
  6. sudo yum install -y libffi-dev
  7. sudo yum install -y autoconf

安装jdk

编译openjdk12时依赖于低版本的jdk,所以需要安装jdk11,以下两种方式任选其一。
安装方式:

  1. yum命令安装:yum install java-11-openjdk-devel -y
  2. tgz压缩包方式:
    2.1. 从jdk官网下载OracleJDK11安装包,https://download.oracle.com/otn/java/jdk/11.0.6+8/90eb79fb590d45c8971362673c5ab495/jdk-11.0.6_linux-x64_bin.tar.gz?AuthParam=1584799751_0beeacff5adbf107139e649841fddf40
    2.2. 拷贝到服务器,在/usr/java下解压缩,tar -xzvf jdk-11.0.6_linux-x64_bin.tar.gz
    2.3. 添加环境变量,编辑/etc/profile文件,增加
export JAVA_HOME=/usr/java/jdk1.8.0_152
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

通过命令source /etc/profile使修改生效
2.4. 使用java -version查看结果

configure

在解压缩之后的openjdk12源码文件夹中执行bash configure
出现错误提示时,会有响应的解决命令,执行之后再次执行bash configure即可。
Win10下Linux子系统Centos7编译Openjdk12源码_第1张图片

make images

运行make images生成jdk
Win10下Linux子系统Centos7编译Openjdk12源码_第2张图片

多版本jdk生成

  1. release版本:
    1.1 . bash configure
    1.2. make images
  2. fastdebug版本:
    2.1. bash configure --enable-debug --with-jvm-variants=server
    2.2. make images CONF=linux-x86_64-server-fastdebug

jdk验证

build\linux-x86_64-server-release\jdk下查看jdk的生成文件,运行bin下的java或者javac,查看java版本信息即可。
在这里插入图片描述

注:参考及引用

  1. 周志明老师的深入理解Java虚拟机第三版 (pd3b)
  2. Linux下编译并且调试OpenJDK12
  3. 使用CLion调试OpenJDK12源码
  4. LxRunOffline 使用教程 - WSL 自定义安装、备份
  5. LxRunOffline的GitHub仓库
  6. openjdk12源码仓库地址
  7. CentOS7编译OpenJDK12、13
  8. windows 10 WSL 安装 Centos (注:win10中不需要安装 chocolatey,直接下载LxRunOffline安装包即可,将exe文件放入系统环境变量PATH目录下即可)

你可能感兴趣的:(JVM)