LinuxCentOS7虚拟机下编译Openjdk12(小白视角,实实在在的试坑和每一步的解释。一篇博客一步到位)

我是小康小白,一个平平无奇的Java小白。热爱有趣的文字,生活和远方。
个人博客:https://blog.csdn.net/weixin_45791445
有问题欢迎QQ联系:1059320343 (记得备注CSDN)

在这里插入图片描述

LinuxCentOS7虚拟机下编译Openjdk12

大家好,我是小白。
LinuxCentOS7虚拟机下编译Openjdk12(小白视角,实实在在的试坑和每一步的解释。一篇博客一步到位)_第1张图片
小白最近尝试了在自己的虚拟机上编译Openjdk12遇到了不少问题。

下面小白就写一写小白的心酸实践历程。

一,需要使用:

  • 虚拟机LinuxCentOS7
  • xftp(如何通过xftp新建连接,并传送文件)
  • Openjdk12;(下载链接提取码: 318i)
  • jdk11(下载链接提取码: gkcg )
  • jdk1.8(这个不一定需要使用,小白的是jdk)
  • root权限(小白推荐一直使用root账户就可以,操作方便。但如果想进入终端后转换为root账户,可以使用su -root命令,然后输入密码su root和su -root的区别)

二,实践步骤

  1. 将openjdk12的源码通过xftp传送到虚拟机上/usr/java目录位置上
    注意压缩文件最好通过xftp来传送到你的虚拟机。直接拉入,文件可能会有打不开的问题。
    如何通过xftp新建连接,并传送文件

  2. 虚拟机中下载依赖库
    sudo yum -y groupinstall “Development Tools”
    sudo yum -y install freetype-devel
    sudo yum -y install cups-devel
    sudo yum -y install libXtst-devel libXt-devel libXrender-devel libXrandr-devel libXi-devel
    sudo yum install -y libasound2-dev
    sudo yum install -y libffi-dev
    sudo yum install -y autoconf
    小白在使用yum命令时遇到了获取密匙失败的错误。如何解决使用yum命令时报获取密匙失败的错误
    LinuxCentOS7虚拟机下编译Openjdk12(小白视角,实实在在的试坑和每一步的解释。一篇博客一步到位)_第2张图片

  3. 因为要编译openjdk就需要它的上一个版本的jdk来驱动。
    例如小白要编译的是openjdk12那么就需要jdk11来驱动。
    解决方法:

     1. yum命令安装:yum install java-11-openjdk-devel -y
     2. 将压缩包传入后配置环境变量:
        * jdk11小白已经把下载链接附在了文章正文开始处。
     	* 通过xftp将jdk11传入/usr/java下解压缩。
     		tar -xzvf jdk-11.0.6_linux-x64_bin.tar.gz
     	* 添加环境变量,编辑/etc/profile文件,增加
     	
     	export JAVA_HOME=/usr/java/jdk1.8.0_152
     	exportCLASSPATH=.:$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使修改生效
     	* 使用java -version查看结果
    

这里可能使用java -version后发现版本没有改变:如何解决java -version后jdk版本未改变

  1. 将jdk-11.0.6_linux-x64_bin.tar.gz移动到/usr/java目录下,并解压

     tar -xzvf jdk-11.0.6_linux-x64_bin.tar.gz
    
  2. 移动到已解压的openjdk12源码文件夹中,执行

     bash configure
    

LinuxCentOS7虚拟机下编译Openjdk12(小白视角,实实在在的试坑和每一步的解释。一篇博客一步到位)_第3张图片

出现错误,缺少autoconf;
使用yum install -y autoconf命令来下载。里面的-y代表的是在下载的过程中需要yes/no的统一为yes.
下载后就没什么问题了。

  1. 继续在openjdk12的源码文件夹下执行make images命令。
    小白这里报错了,显示缺少jre文件和在lib中缺少tools.jr和dt.jar
    通过xftp将缺少的文件传入。(直接使用jdk1.8的相关文件传入即可)
    报错信息:
    LinuxCentOS7虚拟机下编译Openjdk12(小白视角,实实在在的试坑和每一步的解释。一篇博客一步到位)_第4张图片
    解决后再次make images即可;
    注意:在第一次make images失败后需要先make clean后,才能再次make images.
  2. 修改配置文件
    vim /etc/profile
    只需要将原本的配置文件中的JAVA_HOME这一行修改为下图所示即可
    在这里插入图片描述

source /etc/profile使文件生效

  1. 使用java -version查看jdk版本
    在这里插入图片描述
    已经成功修改为openjdk12

三,补充:

如何通过xftp新建连接,并传送文件

首先注意·:无论是在xftp还是xshell连接虚拟机时都需要

  1. 在打开你的虚拟机的终端在其中输入ifconfig

    查看你的ip地址
    LinuxCentOS7虚拟机下编译Openjdk12(小白视角,实实在在的试坑和每一步的解释。一篇博客一步到位)_第5张图片

  2. 点击新建,重新创建一个连接
    LinuxCentOS7虚拟机下编译Openjdk12(小白视角,实实在在的试坑和每一步的解释。一篇博客一步到位)_第6张图片

  3. 在出现的属性页面中填入下图所示信息

LinuxCentOS7虚拟机下编译Openjdk12(小白视角,实实在在的试坑和每一步的解释。一篇博客一步到位)_第7张图片

  1. 点击连接即可。如果想要传入文件只需要直接拉拽文件进入相应的目录即可
    点此返回实践步骤的第一步:将openjdk12的源码通过xftp传送到虚拟机上

LinuxCentOS7虚拟机下编译Openjdk12(小白视角,实实在在的试坑和每一步的解释。一篇博客一步到位)_第8张图片

su root和su -root的区别

su 命令是是切换用户但不改变用户的环境变量。
su - 命令是切换用户以及其环境变量。
su只能获得root的执行权限,不能切换到root用户的环境变量,而su - 是切换到root用户并获得root的环境变量及执行权限。

如何解决使用yum命令时报获取密匙失败的错误

vim /etc/yum.repos.d/CentOS-Base.repo
进入这个文件,然后将里面所有密匙后面的7改成版本号即CentOS-7即可。
点此返回实践步骤第二步:下载依赖库

如何解决java -version后jdk版本未改变
删除原本的jdk版本。
rpm -qa|grep jdk
修改/etc/profile中的jdk;
Source /etc/profile;

LinuxCentOS7虚拟机下编译Openjdk12(小白视角,实实在在的试坑和每一步的解释。一篇博客一步到位)_第9张图片

在这里插入图片描述
兄弟们,小白编写不易。希望各位兄弟们,点赞评论收藏加关注。小白在此谢谢各位老爷们。
LinuxCentOS7虚拟机下编译Openjdk12(小白视角,实实在在的试坑和每一步的解释。一篇博客一步到位)_第10张图片
对于白嫖的兄弟们,
LinuxCentOS7虚拟机下编译Openjdk12(小白视角,实实在在的试坑和每一步的解释。一篇博客一步到位)_第11张图片

你可能感兴趣的:(Linux)