# 安装 JDK

# Windows 安装 JDK

# 下载 JDK

首先,下载 JDK,这里以 JDK 8 为例子,下载地址:https://gitlab.com/samho2008/tool/-/raw/main/jdk/jdk8/jdk-8u202-windows-x64.exe (opens new window)

# 安装 JDK

双击运行下载好的 JDK。

image-20220522124738569

image-20220522124759203

等待复制文件完成。

image-20220522124827356

image-20220522124846843

image-20220522124901507

image-20220522124914064

image-20220522124931882

# 配置 JDK

默认情况下,使用安装包会自动添加 JDK 到环境变量中,所以不需要我们手动添加也可以运行【java -version】命令,但是,并没有帮我们添加 JAVA_HOME 这个变量,而且有的软件,比如 Tomcat 是会用到这个环境变量的。

右键【此电脑】,然后点击【属性】。

image-20220522125148403

在左侧找到【高级系统设置】

image-20220522125212519

image-20220522125240283

在下面系统变量中新建一个变量【JAVA_HOME】,然后变量值是 JDK 的安装路径。

image-20220522125417502

image-20220522125523137

image-20220522125600186

image-20220522125612571

image-20220522125631371

# 验证 JDK

接下来,需要验证 JDK 是否配置正确。

在左下角开始菜单中右键,选择【命令提示符】。

image-20220522125722888

输入【java -version】,看到以下提示说明配置成功了。

image-20220522125808367

# Linux 安装 JDK

# 方式一:(推荐)下载安装包安装

# 获取安装包

# 从第三方下载安装包

由于从 Oracle 官网下载需要登录账号,而且在国内下载也很慢,并且由于需要先登录才能下载也没法编写自动化安装脚本。

但是从 Oracle 官网上可以下载到最新的版本。

(推荐,速度快,而且可以下载到 jdk,而不是 openjdk)

华为镜像:https://repo.huaweicloud.com/java/jdk/ (opens new window)

(可以下载到各个版本的镜像,同时也包括 JDK,推荐!)

injdk:https://www.injdk.cn/ (opens new window)

(备用,下载的是 openjdk 的镜像)

清华镜像:https://mirrors.tuna.tsinghua.edu.cn/AdoptOpenJDK/ (opens new window)

# 从 Oracle 官网下载最新版安装包

打开 Oracle JDK 的下载官网:https://www.oracle.com/java/technologies/downloads/ (opens new window)

image-20220420051313298

下拉找到 JDK 8 的页面,也可以直接访问跳转过去:https://www.oracle.com/java/technologies/downloads/#java8 (opens new window)

如果是 64 位的系统(现在一般都是这个),就下载 x64;

如果是 32 位的系统,就下载 i586。

# 安装方式一:(推荐)压缩包解压安装

# Linux 自动安装 JDK 脚本
# 下载 JDK 压缩包
# GitLab 私有库下载源
#JDK_DOWNLOAD_URL=https://gitlab.com/toolcenter/tool/-/raw/main/jdk/jdk8/jdk-8u202-linux-x64.tar.gz
# 国内华为下载镜像源
JDK_DOWNLOAD_URL=https://repo.huaweicloud.com/java/jdk/8u202-b08/jdk-8u202-linux-x64.tar.gz
cd /usr/local/src
yum -y install wget && wget -O jdk1.8.tar.gz $JDK_DOWNLOAD_URL
# 解压 JDK 压缩包
mkdir -p /usr/local/jdk1.8
tar -xzvf jdk1.8.tar.gz -C /usr/local/jdk1.8 --strip-components 1
# 配置环境变量
echo 'export JAVA_HOME=/usr/local/jdk1.8' >> /etc/profile
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> /etc/profile
echo 'export CLASSPATH=.:$JAVA_HOME/lib' >> /etc/profile
source /etc/profile
# 检查 JDK 是否配置成功
cd ~
java -version

# 下载压缩包

下载 .tar.gz 结尾的压缩包,如果弹出来勾选同意即可。

image-20220420052028212

如果没有登录的话,需要登录之后才能下载。没有账号注册一个就可以。

image-20220420052057342

登录之后就会跳转下载了。

image-20220420052157348

# 上传压缩包

把下载好的压缩包使用 xftp 上传至 /usr/local/src 目录下。

# 解压压缩包

这里的 jdk-8u331-linux-x64.tar.gz 需要换成你的压缩包文件名

mkdir -p /usr/local/jdk1.8
cd /usr/local/src
tar -xzvf jdk-8u331-linux-x64.tar.gz -C /usr/local/jdk1.8 --strip-components 1
# 配置环境变量
vi /etc/profile

在最后添加以下内容,把 /usr/local/jdk1.8 替换成 jdk 的安装目录

export JAVA_HOME=/usr/local/jdk1.8
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib

更新环境变量,否则不会马上生效:

source /etc/profile
# 检查 JDK 是否配置成功
cd ~
java -version

出现以下信息说明配置成功。

[root@localhost ~]# java -version
java version "1.8.0_331"
Java(TM) SE Runtime Environment (build 1.8.0_331-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.331-b09, mixed mode)

如果提示 -bash: java: 未找到命令 则可能环境变量没有更新,执行 source /etc/profile 更新环境变量。

如果更新环境变量后还是不行,执行命令 echo $JAVA_HOME 检查环境变量中的 jdk 安装目录是否存在。

# 安装方式二:RPM 自动安装

这种方式安装起来比较简单。

# 下载 RPM 包

下载 .rpm 结尾的安装包,上传至 /usr/local/src

# 安装 RPM 包

注意:把 jdk-8u331-linux-x64.rpm 换成你下载的文件名

cd /usr/local/src
rpm -ivh jdk-8u331-linux-x64.rpm

关于更多 RPM 的命令 https://www.runoob.com/linux/linux-comm-rpm.html (opens new window)

  • i:显示套件的相关信息
  • v:显示指令执行过程
  • h:套件安装时列出标记

由于使用 RPM 安装会自动创建 java 相关指令的软链接,所以不需要配置环境变量。

具体参考:[关于使用 RPM 安装 JDK 的一些说明](#关于使用 RPM 安装 JDK 的一些说明)

# 检查 JDK 是否配置成功
cd ~
java -version
# 关于使用 RPM 安装 JDK 的一些说明

使用 RPM 安装后,会在 /usr 中创建一个 java 的目录。

/usr/java 中,包含三个目录:defaultlatestjdk1.8.0_331-amd64

其中,

default 目录是个软链接,指向 /usr/java/latest

latest 目录也是个软链接,指向 /usr/java/jdk1.8.0_331-amd64

jdk1.8.0_331-amd64 目录和我们通过下载 .tar.gz 包解压出来是一模一样的。

并且,会在 /usr/bin 下生成一些 java 的二进制文件,以便在系统的任何地方都能直接执行 java 的相关命令。

[root@localhost ~]# ll /usr/bin | grep java
lrwxrwxrwx. 1 root root        22 420 07:56 java -> /etc/alternatives/java
lrwxrwxrwx. 1 root root        23 420 07:56 javac -> /etc/alternatives/javac
lrwxrwxrwx. 1 root root        25 420 07:56 javadoc -> /etc/alternatives/javadoc
lrwxrwxrwx. 1 root root        32 420 07:56 javafxpackager -> /etc/alternatives/javafxpackager
lrwxrwxrwx. 1 root root        23 420 07:56 javah -> /etc/alternatives/javah
lrwxrwxrwx. 1 root root        23 420 07:56 javap -> /etc/alternatives/javap
lrwxrwxrwx. 1 root root        30 420 07:56 javapackager -> /etc/alternatives/javapackager
lrwxrwxrwx. 1 root root        30 420 07:56 java-rmi.cgi -> /etc/alternatives/java-rmi.cgi
lrwxrwxrwx. 1 root root        24 420 07:56 javaws -> /etc/alternatives/javaws

/etc/alternatives 又是个软链接,指向真正的 JDK 目录。所以使用 rpm 方式安装时,它会创建软链接的方式来达到无需添加环境变量也能在任意地方执行 java 命令。

[root@localhost alternatives]# ll /etc/alternatives/
总用量 0
lrwxrwxrwx. 1 root root 45 420 07:56 appletviewer -> /usr/java/jdk1.8.0_331-amd64/bin/appletviewer
lrwxrwxrwx. 1 root root 52 420 07:56 appletviewer.1 -> /usr/java/jdk1.8.0_331-amd64/man/man1/appletviewer.1
lrwxrwxrwx. 1 root root 45 420 07:56 ControlPanel -> /usr/java/jdk1.8.0_331-amd64/bin/ControlPanel
lrwxrwxrwx. 1 root root 41 420 07:56 extcheck -> /usr/java/jdk1.8.0_331-amd64/bin/extcheck
lrwxrwxrwx. 1 root root 48 420 07:56 extcheck.1 -> /usr/java/jdk1.8.0_331-amd64/man/man1/extcheck.1
lrwxrwxrwx. 1 root root 37 420 07:56 idlj -> /usr/java/jdk1.8.0_331-amd64/bin/idlj
lrwxrwxrwx. 1 root root 44 420 07:56 idlj.1 -> /usr/java/jdk1.8.0_331-amd64/man/man1/idlj.1
lrwxrwxrwx. 1 root root 36 420 07:56 jar -> /usr/java/jdk1.8.0_331-amd64/bin/jar
lrwxrwxrwx. 1 root root 43 420 07:56 jar.1 -> /usr/java/jdk1.8.0_331-amd64/man/man1/jar.1
lrwxrwxrwx. 1 root root 42 420 07:56 jarsigner -> /usr/java/jdk1.8.0_331-amd64/bin/jarsigner
lrwxrwxrwx. 1 root root 49 420 07:56 jarsigner.1 -> /usr/java/jdk1.8.0_331-amd64/man/man1/jarsigner.1
lrwxrwxrwx. 1 root root 37 420 07:56 java -> /usr/java/jdk1.8.0_331-amd64/bin/java
lrwxrwxrwx. 1 root root 44 420 07:56 java.1 -> /usr/java/jdk1.8.0_331-amd64/man/man1/java.1
lrwxrwxrwx. 1 root root 38 420 07:56 javac -> /usr/java/jdk1.8.0_331-amd64/bin/javac
lrwxrwxrwx. 1 root root 45 420 07:56 javac.1 -> /usr/java/jdk1.8.0_331-amd64/man/man1/javac.1
lrwxrwxrwx. 1 root root 40 420 07:56 javadoc -> /usr/java/jdk1.8.0_331-amd64/bin/javadoc
lrwxrwxrwx. 1 root root 47 420 07:56 javadoc.1 -> /usr/java/jdk1.8.0_331-amd64/man/man1/javadoc.1
lrwxrwxrwx. 1 root root 47 420 07:56 javafxpackager -> /usr/java/jdk1.8.0_331-amd64/bin/javafxpackager
lrwxrwxrwx. 1 root root 54 420 07:56 javafxpackager.1 -> /usr/java/jdk1.8.0_331-amd64/man/man1/javafxpackager.1
lrwxrwxrwx. 1 root root 38 420 07:56 javah -> /usr/java/jdk1.8.0_331-amd64/bin/javah
lrwxrwxrwx. 1 root root 45 420 07:56 javah.1 -> /usr/java/jdk1.8.0_331-amd64/man/man1/javah.1
lrwxrwxrwx. 1 root root 38 420 07:56 javap -> /usr/java/jdk1.8.0_331-amd64/bin/javap
lrwxrwxrwx. 1 root root 45 420 07:56 javap.1 -> /usr/java/jdk1.8.0_331-amd64/man/man1/javap.1
lrwxrwxrwx. 1 root root 45 420 07:56 javapackager -> /usr/java/jdk1.8.0_331-amd64/bin/javapackager
lrwxrwxrwx. 1 root root 52 420 07:56 javapackager.1 -> /usr/java/jdk1.8.0_331-amd64/man/man1/javapackager.1
lrwxrwxrwx. 1 root root 45 420 07:56 java-rmi.cgi -> /usr/java/jdk1.8.0_331-amd64/bin/java-rmi.cgi
lrwxrwxrwx. 1 root root 39 420 07:56 javaws -> /usr/java/jdk1.8.0_331-amd64/bin/javaws
lrwxrwxrwx. 1 root root 46 420 07:56 javaws.1 -> /usr/java/jdk1.8.0_331-amd64/man/man1/javaws.1
lrwxrwxrwx. 1 root root 37 420 07:56 jcmd -> /usr/java/jdk1.8.0_331-amd64/bin/jcmd
lrwxrwxrwx. 1 root root 44 420 07:56 jcmd.1 -> /usr/java/jdk1.8.0_331-amd64/man/man1/jcmd.1
lrwxrwxrwx. 1 root root 41 420 07:56 jconsole -> /usr/java/jdk1.8.0_331-amd64/bin/jconsole
lrwxrwxrwx. 1 root root 48 420 07:56 jconsole.1 -> /usr/java/jdk1.8.0_331-amd64/man/man1/jconsole.1
lrwxrwxrwx. 1 root root 41 420 07:56 jcontrol -> /usr/java/jdk1.8.0_331-amd64/bin/jcontrol
lrwxrwxrwx. 1 root root 36 420 07:56 jdb -> /usr/java/jdk1.8.0_331-amd64/bin/jdb
lrwxrwxrwx. 1 root root 43 420 07:56 jdb.1 -> /usr/java/jdk1.8.0_331-amd64/man/man1/jdb.1
lrwxrwxrwx. 1 root root 38 420 07:56 jdeps -> /usr/java/jdk1.8.0_331-amd64/bin/jdeps
lrwxrwxrwx. 1 root root 45 420 07:56 jdeps.1 -> /usr/java/jdk1.8.0_331-amd64/man/man1/jdeps.1
lrwxrwxrwx. 1 root root 37 420 07:56 jhat -> /usr/java/jdk1.8.0_331-amd64/bin/jhat
lrwxrwxrwx. 1 root root 44 420 07:56 jhat.1 -> /usr/java/jdk1.8.0_331-amd64/man/man1/jhat.1
lrwxrwxrwx. 1 root root 38 420 07:56 jinfo -> /usr/java/jdk1.8.0_331-amd64/bin/jinfo
lrwxrwxrwx. 1 root root 45 420 07:56 jinfo.1 -> /usr/java/jdk1.8.0_331-amd64/man/man1/jinfo.1
lrwxrwxrwx. 1 root root 36 420 07:56 jjs -> /usr/java/jdk1.8.0_331-amd64/bin/jjs
lrwxrwxrwx. 1 root root 43 420 07:56 jjs.1 -> /usr/java/jdk1.8.0_331-amd64/man/man1/jjs.1
lrwxrwxrwx. 1 root root 37 420 07:56 jmap -> /usr/java/jdk1.8.0_331-amd64/bin/jmap
lrwxrwxrwx. 1 root root 44 420 07:56 jmap.1 -> /usr/java/jdk1.8.0_331-amd64/man/man1/jmap.1
lrwxrwxrwx. 1 root root 36 420 07:56 jps -> /usr/java/jdk1.8.0_331-amd64/bin/jps
lrwxrwxrwx. 1 root root 43 420 07:56 jps.1 -> /usr/java/jdk1.8.0_331-amd64/man/man1/jps.1
lrwxrwxrwx. 1 root root 43 420 07:56 jrunscript -> /usr/java/jdk1.8.0_331-amd64/bin/jrunscript
lrwxrwxrwx. 1 root root 50 420 07:56 jrunscript.1 -> /usr/java/jdk1.8.0_331-amd64/man/man1/jrunscript.1
lrwxrwxrwx. 1 root root 42 420 07:56 jsadebugd -> /usr/java/jdk1.8.0_331-amd64/bin/jsadebugd
lrwxrwxrwx. 1 root root 49 420 07:56 jsadebugd.1 -> /usr/java/jdk1.8.0_331-amd64/man/man1/jsadebugd.1
lrwxrwxrwx. 1 root root 39 420 07:56 jstack -> /usr/java/jdk1.8.0_331-amd64/bin/jstack
lrwxrwxrwx. 1 root root 46 420 07:56 jstack.1 -> /usr/java/jdk1.8.0_331-amd64/man/man1/jstack.1
lrwxrwxrwx. 1 root root 38 420 07:56 jstat -> /usr/java/jdk1.8.0_331-amd64/bin/jstat
lrwxrwxrwx. 1 root root 45 420 07:56 jstat.1 -> /usr/java/jdk1.8.0_331-amd64/man/man1/jstat.1
lrwxrwxrwx. 1 root root 39 420 07:56 jstatd -> /usr/java/jdk1.8.0_331-amd64/bin/jstatd
lrwxrwxrwx. 1 root root 46 420 07:56 jstatd.1 -> /usr/java/jdk1.8.0_331-amd64/man/man1/jstatd.1
lrwxrwxrwx. 1 root root 42 420 07:56 jvisualvm -> /usr/java/jdk1.8.0_331-amd64/bin/jvisualvm
lrwxrwxrwx. 1 root root 49 420 07:56 jvisualvm.1 -> /usr/java/jdk1.8.0_331-amd64/man/man1/jvisualvm.1
lrwxrwxrwx. 1 root root 40 420 07:56 keytool -> /usr/java/jdk1.8.0_331-amd64/bin/keytool
lrwxrwxrwx. 1 root root 47 420 07:56 keytool.1 -> /usr/java/jdk1.8.0_331-amd64/man/man1/keytool.1
lrwxrwxrwx. 1 root root 15 418 04:34 ld -> /usr/bin/ld.bfd
lrwxrwxrwx. 1 root root 34 418 04:34 libnssckbi.so.x86_64 -> /usr/lib64/pkcs11/p11-kit-trust.so
lrwxrwxrwx. 1 root root 26 418 04:34 mta -> /usr/sbin/sendmail.postfix
lrwxrwxrwx. 1 root root 40 418 04:34 mta-aliasesman -> /usr/share/man/man5/aliases.postfix.5.gz
lrwxrwxrwx. 1 root root 22 418 04:34 mta-mailq -> /usr/bin/mailq.postfix
lrwxrwxrwx. 1 root root 38 418 04:34 mta-mailqman -> /usr/share/man/man1/mailq.postfix.1.gz
lrwxrwxrwx. 1 root root 27 418 04:34 mta-newaliases -> /usr/bin/newaliases.postfix
lrwxrwxrwx. 1 root root 43 418 04:34 mta-newaliasesman -> /usr/share/man/man1/newaliases.postfix.1.gz
lrwxrwxrwx. 1 root root 23 418 04:34 mta-pam -> /etc/pam.d/smtp.postfix
lrwxrwxrwx. 1 root root 22 418 04:34 mta-rmail -> /usr/bin/rmail.postfix
lrwxrwxrwx. 1 root root 25 418 04:34 mta-sendmail -> /usr/lib/sendmail.postfix
lrwxrwxrwx. 1 root root 41 418 04:34 mta-sendmailman -> /usr/share/man/man1/sendmail.postfix.1.gz
lrwxrwxrwx. 1 root root 45 420 07:56 native2ascii -> /usr/java/jdk1.8.0_331-amd64/bin/native2ascii
lrwxrwxrwx. 1 root root 52 420 07:56 native2ascii.1 -> /usr/java/jdk1.8.0_331-amd64/man/man1/native2ascii.1
lrwxrwxrwx. 1 root root 37 420 07:56 orbd -> /usr/java/jdk1.8.0_331-amd64/bin/orbd
lrwxrwxrwx. 1 root root 44 420 07:56 orbd.1 -> /usr/java/jdk1.8.0_331-amd64/man/man1/orbd.1
lrwxrwxrwx. 1 root root 40 420 07:56 pack200 -> /usr/java/jdk1.8.0_331-amd64/bin/pack200
lrwxrwxrwx. 1 root root 47 420 07:56 pack200.1 -> /usr/java/jdk1.8.0_331-amd64/man/man1/pack200.1
lrwxrwxrwx. 1 root root 43 420 07:56 policytool -> /usr/java/jdk1.8.0_331-amd64/bin/policytool
lrwxrwxrwx. 1 root root 50 420 07:56 policytool.1 -> /usr/java/jdk1.8.0_331-amd64/man/man1/policytool.1
lrwxrwxrwx. 1 root root 37 420 07:56 rmic -> /usr/java/jdk1.8.0_331-amd64/bin/rmic
lrwxrwxrwx. 1 root root 44 420 07:56 rmic.1 -> /usr/java/jdk1.8.0_331-amd64/man/man1/rmic.1
lrwxrwxrwx. 1 root root 37 420 07:56 rmid -> /usr/java/jdk1.8.0_331-amd64/bin/rmid
lrwxrwxrwx. 1 root root 44 420 07:56 rmid.1 -> /usr/java/jdk1.8.0_331-amd64/man/man1/rmid.1
lrwxrwxrwx. 1 root root 44 420 07:56 rmiregistry -> /usr/java/jdk1.8.0_331-amd64/bin/rmiregistry
lrwxrwxrwx. 1 root root 51 420 07:56 rmiregistry.1 -> /usr/java/jdk1.8.0_331-amd64/man/man1/rmiregistry.1
lrwxrwxrwx. 1 root root 42 420 07:56 schemagen -> /usr/java/jdk1.8.0_331-amd64/bin/schemagen
lrwxrwxrwx. 1 root root 49 420 07:56 schemagen.1 -> /usr/java/jdk1.8.0_331-amd64/man/man1/schemagen.1
lrwxrwxrwx. 1 root root 42 420 07:56 serialver -> /usr/java/jdk1.8.0_331-amd64/bin/serialver
lrwxrwxrwx. 1 root root 49 420 07:56 serialver.1 -> /usr/java/jdk1.8.0_331-amd64/man/man1/serialver.1
lrwxrwxrwx. 1 root root 43 420 07:56 servertool -> /usr/java/jdk1.8.0_331-amd64/bin/servertool
lrwxrwxrwx. 1 root root 50 420 07:56 servertool.1 -> /usr/java/jdk1.8.0_331-amd64/man/man1/servertool.1
lrwxrwxrwx. 1 root root 42 420 07:56 tnameserv -> /usr/java/jdk1.8.0_331-amd64/bin/tnameserv
lrwxrwxrwx. 1 root root 49 420 07:56 tnameserv.1 -> /usr/java/jdk1.8.0_331-amd64/man/man1/tnameserv.1
lrwxrwxrwx. 1 root root 42 420 07:56 unpack200 -> /usr/java/jdk1.8.0_331-amd64/bin/unpack200
lrwxrwxrwx. 1 root root 49 420 07:56 unpack200.1 -> /usr/java/jdk1.8.0_331-amd64/man/man1/unpack200.1
lrwxrwxrwx. 1 root root 38 420 07:56 wsgen -> /usr/java/jdk1.8.0_331-amd64/bin/wsgen
lrwxrwxrwx. 1 root root 45 420 07:56 wsgen.1 -> /usr/java/jdk1.8.0_331-amd64/man/man1/wsgen.1
lrwxrwxrwx. 1 root root 41 420 07:56 wsimport -> /usr/java/jdk1.8.0_331-amd64/bin/wsimport
lrwxrwxrwx. 1 root root 48 420 07:56 wsimport.1 -> /usr/java/jdk1.8.0_331-amd64/man/man1/wsimport.1
lrwxrwxrwx. 1 root root 36 420 07:56 xjc -> /usr/java/jdk1.8.0_331-amd64/bin/xjc
lrwxrwxrwx. 1 root root 43 420 07:56 xjc.1 -> /usr/java/jdk1.8.0_331-amd64/man/man1/xjc.1

# 方式二:通过 yum 安装

通过 yum 安装的是 openjdk,openjdk 理论上和 Oracle 的 jdk 区别不大,但是 openjdk 是开源的,并且可以商用,Oracle JDK 在生产环境下使用可能会有法律的风险。

但是通过 yum 安装的目录会比较乱,不好管理。

# 查看 yum 上可安装的 jdk 版本

首次执行的时候会去联网获取最新的版本,所以等待下载一段时间。

yum -y list java*

执行命令后的结果:

[root@localhost ~]# yum -y list java*
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: sjc.edge.kernel.org
 * extras: mirror.hackingand.coffee
 * updates: mirror.hostduplex.com
可安装的软件包
java-1.6.0-openjdk.x86_64                                         1:1.6.0.41-1.13.13.1.el7_3                            base   
java-1.6.0-openjdk-demo.x86_64                                    1:1.6.0.41-1.13.13.1.el7_3                            base   
java-1.6.0-openjdk-devel.x86_64                                   1:1.6.0.41-1.13.13.1.el7_3                            base   
java-1.6.0-openjdk-javadoc.x86_64                                 1:1.6.0.41-1.13.13.1.el7_3                            base   
java-1.6.0-openjdk-src.x86_64                                     1:1.6.0.41-1.13.13.1.el7_3                            base   
java-1.7.0-openjdk.x86_64                                         1:1.7.0.261-2.6.22.2.el7_8                            base   
java-1.7.0-openjdk-accessibility.x86_64                           1:1.7.0.261-2.6.22.2.el7_8                            base   
java-1.7.0-openjdk-demo.x86_64                                    1:1.7.0.261-2.6.22.2.el7_8                            base   
java-1.7.0-openjdk-devel.x86_64                                   1:1.7.0.261-2.6.22.2.el7_8                            base   
java-1.7.0-openjdk-headless.x86_64                                1:1.7.0.261-2.6.22.2.el7_8                            base   
java-1.7.0-openjdk-javadoc.noarch                                 1:1.7.0.261-2.6.22.2.el7_8                            base   
java-1.7.0-openjdk-src.x86_64                                     1:1.7.0.261-2.6.22.2.el7_8                            base   
java-1.8.0-openjdk.i686                                           1:1.8.0.322.b06-1.el7_9                               updates
java-1.8.0-openjdk.x86_64                                         1:1.8.0.322.b06-1.el7_9                               updates
java-1.8.0-openjdk-accessibility.i686                             1:1.8.0.322.b06-1.el7_9                               updates
java-1.8.0-openjdk-accessibility.x86_64                           1:1.8.0.322.b06-1.el7_9                               updates
java-1.8.0-openjdk-demo.i686                                      1:1.8.0.322.b06-1.el7_9                               updates
java-1.8.0-openjdk-demo.x86_64                                    1:1.8.0.322.b06-1.el7_9                               updates
java-1.8.0-openjdk-devel.i686                                     1:1.8.0.322.b06-1.el7_9                               updates
java-1.8.0-openjdk-devel.x86_64                                   1:1.8.0.322.b06-1.el7_9                               updates
java-1.8.0-openjdk-headless.i686                                  1:1.8.0.322.b06-1.el7_9                               updates
java-1.8.0-openjdk-headless.x86_64                                1:1.8.0.322.b06-1.el7_9                               updates
java-1.8.0-openjdk-javadoc.noarch                                 1:1.8.0.322.b06-1.el7_9                               updates
java-1.8.0-openjdk-javadoc-zip.noarch                             1:1.8.0.322.b06-1.el7_9                               updates
java-1.8.0-openjdk-src.i686                                       1:1.8.0.322.b06-1.el7_9                               updates
java-1.8.0-openjdk-src.x86_64                                     1:1.8.0.322.b06-1.el7_9                               updates
java-11-openjdk.i686                                              1:11.0.14.1.1-1.el7_9                                 updates
java-11-openjdk.x86_64                                            1:11.0.14.1.1-1.el7_9                                 updates
java-11-openjdk-demo.i686                                         1:11.0.14.1.1-1.el7_9                                 updates
java-11-openjdk-demo.x86_64                                       1:11.0.14.1.1-1.el7_9                                 updates
java-11-openjdk-devel.i686                                        1:11.0.14.1.1-1.el7_9                                 updates
java-11-openjdk-devel.x86_64                                      1:11.0.14.1.1-1.el7_9                                 updates
java-11-openjdk-headless.i686                                     1:11.0.14.1.1-1.el7_9                                 updates
java-11-openjdk-headless.x86_64                                   1:11.0.14.1.1-1.el7_9                                 updates
java-11-openjdk-javadoc.i686                                      1:11.0.14.1.1-1.el7_9                                 updates
java-11-openjdk-javadoc.x86_64                                    1:11.0.14.1.1-1.el7_9                                 updates
java-11-openjdk-javadoc-zip.i686                                  1:11.0.14.1.1-1.el7_9                                 updates
java-11-openjdk-javadoc-zip.x86_64                                1:11.0.14.1.1-1.el7_9                                 updates
java-11-openjdk-jmods.i686                                        1:11.0.14.1.1-1.el7_9                                 updates
java-11-openjdk-jmods.x86_64                                      1:11.0.14.1.1-1.el7_9                                 updates
java-11-openjdk-src.i686                                          1:11.0.14.1.1-1.el7_9                                 updates
java-11-openjdk-src.x86_64                                        1:11.0.14.1.1-1.el7_9                                 updates
java-11-openjdk-static-libs.i686                                  1:11.0.14.1.1-1.el7_9                                 updates
java-11-openjdk-static-libs.x86_64                                1:11.0.14.1.1-1.el7_9                                 updates
java-atk-wrapper.i686                                             0.30.4-5.el7                                          base   
java-atk-wrapper.x86_64                                           0.30.4-5.el7                                          base   
java_cup.noarch                                                   1:0.11a-16.el7                                        base   
java_cup-javadoc.noarch                                           1:0.11a-16.el7                                        base   
java_cup-manual.noarch                                            1:0.11a-16.el7                                        base   
javacc.noarch                                                     5.0-10.el7                                            base   
javacc-demo.noarch                                                5.0-10.el7                                            base   
javacc-javadoc.noarch                                             5.0-10.el7                                            base   
javacc-manual.noarch                                              5.0-10.el7                                            base   
javacc-maven-plugin.noarch                                        2.6-17.el7                                            base   
javacc-maven-plugin-javadoc.noarch                                2.6-17.el7                                            base   
javamail.noarch                                                   1.4.6-8.el7                                           base   
javamail-javadoc.noarch                                           1.4.6-8.el7                                           base   
javapackages-tools.noarch                                         3.4.1-11.el7                                          base   
javassist.noarch                                                  3.16.1-10.el7                                         base   
javassist-javadoc.noarch                                          3.16.1-10.el7                                         base   

# 下载指定版本的 jdk

执行上面的命令后发现有很多个版本可以下载,如:

java-1.6.0

java-1.7.0

java-1.8.0

java-11

注意:只可下载一个版本,不能同时下载多个!

这里我们下载 jdk 1.8 的版本。

yum -y install java-1.8.0

# 验证 JDK 是否安装成功

cd ~
java -version

看到下面的结果说明执行成功了。

[root@localhost ~]# java -version
openjdk version "1.8.0_322"
OpenJDK Runtime Environment (build 1.8.0_322-b06)
OpenJDK 64-Bit Server VM (build 25.322-b06, mixed mode)

image-20220420083533393

你如果好奇这个自动安装把 jdk 安装到哪里去了,其实你可以在 usr/lib/jvm 下找到它们。

参考资料:

CGB2111-Day18 (opens new window)

Oracle_JDK (opens new window)

关于tar解压重命名的问题 (opens new window)

JDK下载哪家快?推荐3个国内java jdk镜像站 (opens new window)

java jdk 国内下载镜像地址 (opens new window)

Linux rpm命令 | 菜鸟教程

Linux系统下安装jdk及环境配置(两种方法) (opens new window)