看了好多教程,发现linux环境下安装jdk主要有两种方式,一种是懒人操作法,一种是自定义配置法。 后续扩展 :docker自定义配置jdk镜像。
系统环境:Linux ( Centos 7 )
一、懒人法
先看懒人操作法,所谓“懒人”非贬义或嘲讽,而是这种比较省事,我也比较喜欢。下方1~3步是卸载系统自带或者旧的jdk的一些方法。
1、查看当前环境是否有jdk
java -version
2、查看安装包相关文件
rpm -qa | grep java
rpm -qa | grep jdk
3、移除,下方两个命令都可以
rpm -e --nodeps [包名]
yum -y remove [包名]
注:yum -y中的“-y”是默认执行卸载不会询问
4、寻找可以下载的安装包
yum -y list java*
5、找一个差不多的安装包来下载,本机安装jdk8
yum -y install [ java-1.8.0-openjdk.x86_64 ]
卸载截图:
二、自定义配置法:
自定义法虽过程复杂,但是,能够精确的控制自己所要的jdk版本, 所以要是想了解的可以看下。注意,自定义的配置方法,需要注意当前linux系统的种类以及操作系统是多少位的。
查看当前系统的命令“uname -a”。这个方法可以先获取当前系统的版本。然后到jdk官网去下载对应的jdk。https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
我远程的工具是 SecureCRT 8.5 ,然后用 “ lrzsz ”进行安装文件的传输。
6、自定义安装jdk,先解压该jdk安装文件
tar -zxf jdk-8u221-linux-x64.tar.gz
7、移动要安装的位置:
mv jdk1.8.0_221 /usr/local/jdk1.8
8、查看文件位置并配置环境变量:“ /etc/profile ”里添加下方内容
JAVA_HOME=/usr/local/jdk1.8
JRE_HOME=$JAVA_HOME/jre
CLASSPATH=.:$JAVA_HOME/lib:${JRE_HOME}/lib
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
9、重新加载profile文件
source /etc/profile
10、查看jdk
java -version
11、自定义安装的jdk卸载更简单,将配置文件还原,删除jdk的压缩包即可
三:自定义在docker中配置自己想要的jdk
linux主机是使用的树莓派4B,所以通过docker pull 下来的大多会报错 ( standard_init_linux.go: 178: exec user process caused "exec format error ") 。查阅资料后发现是jdk版本类型与主机不兼容导致的。所以便从官网下载了对应的jdk版本:“jdk-8u301-linux-arm32-vfp-hflt.tar.gz”。解压后看到其根目录是“jdk1.8.0_301”。
1)配置Dockerfile。 gz安装包也可以先解压后再确定里面的根目录。下方的命令与第二个方法十分相似。
FROM docker.io/centos:7 # 这个参考自己现在机器的系统环境
MAINTAINER seas
ADD jdk-8u301-linux-arm32-vfp-hflt.tar.gz /usr/local/
ENV JAVA_HOME /usr/local/jdk1.8.0_301
ENV JRE_HOME /usr/local/jdk1.8.0_301/jre
ENV PATH $JAVA_HOME/bin:$PATH
2)执行生成docker 镜像,为方便后面区别,我将其镜像版本改为:“ java:a8”。下方为sh执行文件。
#!/bin/sh
a="开始配置 docker jdk 服务"
echo $a
docker rmi java:a8
docker build -t java:a8 .