我是小康小白,一个平平无奇的Java小白。热爱有趣的文字,生活和远方。
个人博客:https://blog.csdn.net/weixin_45791445
有问题欢迎QQ联系:1059320343 (记得备注CSDN)
LinuxCentOS7虚拟机下编译Openjdk12
大家好,我是小白。
小白最近尝试了在自己的虚拟机上编译Openjdk12遇到了不少问题。
下面小白就写一写小白的心酸实践历程。
一,需要使用:
- 虚拟机LinuxCentOS7
- xftp(如何通过xftp新建连接,并传送文件)
- Openjdk12;(下载链接提取码: 318i)
- jdk11(下载链接提取码: gkcg )
- jdk1.8(这个不一定需要使用,小白的是jdk)
- root权限(小白推荐一直使用root账户就可以,操作方便。但如果想进入终端后转换为root账户,可以使用su -root命令,然后输入密码su root和su -root的区别)
二,实践步骤
-
将openjdk12的源码通过xftp传送到虚拟机上/usr/java目录位置上
注意压缩文件最好通过xftp来传送到你的虚拟机。直接拉入,文件可能会有打不开的问题。
如何通过xftp新建连接,并传送文件 -
虚拟机中下载依赖库
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命令时报获取密匙失败的错误
-
因为要编译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版本未改变
-
将jdk-11.0.6_linux-x64_bin.tar.gz移动到/usr/java目录下,并解压
tar -xzvf jdk-11.0.6_linux-x64_bin.tar.gz
-
移动到已解压的openjdk12源码文件夹中,执行
bash configure
出现错误,缺少autoconf;
使用yum install -y autoconf命令来下载。里面的-y代表的是在下载的过程中需要yes/no的统一为yes.
下载后就没什么问题了。
- 继续在openjdk12的源码文件夹下执行make images命令。
小白这里报错了,显示缺少jre文件和在lib中缺少tools.jr和dt.jar
通过xftp将缺少的文件传入。(直接使用jdk1.8的相关文件传入即可)
报错信息:
解决后再次make images即可;
注意:在第一次make images失败后需要先make clean后,才能再次make images. - 修改配置文件
vim /etc/profile
只需要将原本的配置文件中的JAVA_HOME这一行修改为下图所示即可
source /etc/profile使文件生效
- 使用java -version查看jdk版本
已经成功修改为openjdk12
三,补充:
如何通过xftp新建连接,并传送文件
首先注意·:无论是在xftp还是xshell连接虚拟机时都需要
-
在打开你的虚拟机的终端在其中输入ifconfig
查看你的ip地址
-
点击新建,重新创建一个连接
-
在出现的属性页面中填入下图所示信息
- 点击连接即可。如果想要传入文件只需要直接拉拽文件进入相应的目录即可
点此返回实践步骤的第一步:将openjdk12的源码通过xftp传送到虚拟机上
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;
兄弟们,小白编写不易。希望各位兄弟们,点赞评论收藏加关注。小白在此谢谢各位老爷们。
对于白嫖的兄弟们,