2023年度Linux系统安装与移除JDK保姆级教程

简介

本篇文章介绍了如何在 CentOS 系统上安装 与移除JDK,并提供了两种不同的安装与移除方法。我们还将针对每种方法的优点和缺点进行对比

前置条件

在开始之前,请确保您已经在虚拟机中安装CentOS 系统

如果没有安装请参考我之前的VMware Workstation 17 Pro安装配置CentOS 7与ssh工具链接配置

在安装CentOS 系统后请确保已完成以下操作:

  • 已连接互联网
  • 已更新所有软件包至最新版本
  • 具有 sudo 权限
  • 使用ssh工具SecureCRT进行安装与卸载操作

安装 JDK 是一项需要一定技术水平的任务,以下是这四个前置条件的原因:

  1. 已连接互联网

    JDK 的下载和安装需要通过互联网进行。在没有网络连接的情况下,无法下载 JDK 包并完成安装。

  2. 已更新所有软件包至最新版本

    当安装 JDK 时,可能会依赖于其他软件包或库。这些软件包或库可能需要更新到最新版本,以保证 JDK 的顺利安装。否则,可能会出现错误或兼容性问题,从而导致 JDK 安装失败。

  3. 具有 sudo 权限

    安装 JDK 需要在 Linux 系统上进行,而默认情况下,普通用户没有权限安装软件包。因此,在 Linux 系统上安装 JDK 需要使用 root 用户或具有 sudo 权限的用户进行。sudo 的全称为 "Superuser do",使用 sudo 命令可以在普通用户身份下临时获取管理员权限,以执行需要管理员权限的命令。如果没有 sudo 权限,则无法安装 JDK 或进行其他需要管理员权限的任务。

  4. 使用 ssh 工具进行安装与卸载操作

    SSH(Secure Shell)工具是一种安全的远程连接协议,可以在本地计算机上远程访问服务器。在使用 SSH 工具连接远程服务器时,可以使用命令行方式来进行 JDK 的安装和卸载操作。相对于图形化界面,命令行方式更加灵活和高效,特别是在使用脚本批量安装时更为方便。

因此,这四个前置条件对于成功安装 JDK 是至关重要的。如果您已经满足这些条件,那么您可以按照 JDK 的安装指南操作,顺利地完成 JDK 的安装和卸载。

前置条件 描述
已连接互联网 下载和安装 JDK 需要通过互联网进行。
已更新所有软件包 安装 JDK 可能需要依赖其他软件包或库,必须更新到最新版本才能保证 JDK 的顺利安装。
具有 sudo 权限 在 Linux 系统上,安装 JDK 需要使用管理员权限,普通用户需要使用 sudo 命令获取临时管理员权限。
使用 SSH 工具 SSH 工具可以在本地计算机上远程访问服务器,在命令行方式下安装和卸载 JDK 更加高效。

以下操作我是以root用户的身份进行操作

Yum 安装 OpenJDK

以下是通过 Yum 安装 OpenJDK 的步骤:

  1. 查询要安装jdk的版本

    yum -y list java*
    
  2. 安装 OpenJDK1.8:

    yum install -y java-1.8.0-openjdk.x86_64
    
  3. 验证 Java 是否成功安装:

    java -version
    

    如果 JDK 安装成功,则应该看到与以下类似的输出:

    openjdk version "1.8.0_372"
    OpenJDK Runtime Environment (build 1.8.0_372-b07)
    OpenJDK 64-Bit Server VM (build 25.372-b07, mixed mode)
    

使用yum install -y java-1.8.0-openjdk.x86_64命令安装OpenJDK JDK时,默认情况下,安装的文件会被放置在以下路径下:

/usr/lib/jvm/java-1.8.0-openjdk-<version>/bin/

其中,<version>代表所安装OpenJDK版本的具体版本号。

同时,yum安装的OpenJDK JDK还会将一些相关的文件和库存放在以下路径中:

/usr/lib/jvm/java-1.8.0-openjdk-<version>/jre/lib/

手动下载和安装 Oracle JDK

以下是手动下载和安装 Oracle JDK 的步骤:

访问 JDK 下载页面:Java 归档下载 - Java SE 8 (oracle.com)

找到适合您的发行版的 JDK 安装包

JDK/JRE历史版本高速下载

甲骨文官网

华为云镜像

编程宝库

injdk

我下载好的JDK压缩包

jdk-8u161-linux-x64.tar.gz 《==点击直达

先删除系统原来默认的jdk

在这里插入图片描述

yum list | grep jdkyum list installed | grep jdk 是两个用途不同的命令,有以下区别:

  • 涉及的软件包范围不同

    yum list | grep jdk 列出的是可用的软件包,包括已经安装的软件包和尚未安装的软件包。

    yum list installed | grep jdk 只列出已经安装的软件包,不包括尚未安装的软件包。

  • 列出的信息内容不同

    yum list | grep jdk 列出的是所有与 JDK 相关的软件包的详细信息,包括软件包名称、版本、大小等。

    yum list installed | grep jdk 只列出已安装的与 JDK 相关的软件包的详细信息,包括软件包名称、版本、发布日期等。

  • 使用的目的不同

    yum list | grep jdk 用于查找与 JDK 相关的可用软件包,以便安装新的 JDK 版本或查看其他 JDK 相关的软件包。

    yum list installed | grep jdk 帮助您查找系统上已经安装的 JDK 软件包的版本和其他信息,以确保其与应用程序或其他软件兼容,并进行必要的更新或升级。

因此,根据您的实际需求选择使用以上命令的其中之一。
在这里插入图片描述

这里是一个在CentOS 7系统中已安装的与JDK(Java开发工具包)相关的软件包清单:

  • copy-jdk-configs.noarch: JDK配置文件的可复制版本。对于需要自定义JDK配置的用户可能有用。
  • java-1.8.0-openjdk-headless.x86_64: Java 8标准版JDK的无头(Headless)版本。这是一个没有图形用户界面的JDK版本,通常用于服务器和嵌入式设备等场景。

其中,符号 @updates 表示这些软件包来自更新(updates)源。这些软件包应该已经随着系统更新而自动安装,以确保系统具有最新版本的软件包和安全补丁。

要卸载这些软件包,您可以使用 yum remove 命令,具体操作如下:

  1. 打开终端并运行以下命令以卸载 copy-jdk-configs 软件包:

     yum remove copy-jdk-configs
    
  2. 运行以下命令以删除 java-1.8.0-openjdk-headless 软件包:

     yum remove java-1.8.0-openjdk-headless
    
  3. 如果您不再需要 JDK 相关的其他软件包,请相应地运行 yum remove 命令以删除它们。

    例如,如果您要卸载 Java 8标准版 JDK 的完整版本,可以使用以下命令:

     yum remove java-1.8.0-openjdk
    

    或者,如果您要卸载 Java 11标准版 JDK 的完整版本,可以使用以下命令:

     yum remove java-11-openjdk
    

注意:在进行上述操作之前,请确保您已经备份了必要的数据,并且确信这些软件包对您的系统没有关键影响。
在这里插入图片描述
在这里插入图片描述

如果你系统中安装了多个jdk版本

  1. 打开终端并运行以下命令以列出当前系统中已经安装的 JDK 软件包:

    rpm -qa | grep -i jdk
    

    这个命令将会返回与 JDK 相关的所有软件包的名称、版本等信息。请通过输出列表确认您希望卸载那些 JDK 软件包。

  2. 运行以下命令以卸载所有与 JDK 相关的软件包:

    yum remove java-*
    

    如果您无法使用通配符符号 *,可以使用以下命令替代上面的命令:

    yum remove 'java-*'
    

    或者,如果您只想卸载 Java 8 和 Java 11 两个版本,则可以使用以下命令:

    yum remove java-1.8.0-openjdk* java-11-openjdk*
    

    或者,如果您只想卸载 Java 8 的标准版 JDK,则可以使用以下命令:

    yum remove java-1.8.0-openjdk*
    
  3. 确认卸载操作并等待其完成。

  4. 运行以下命令以确认 JDK 已经完全被卸载:

    rpm -qa | grep -i jdk
    

    如果输出为空,则表示 JDK 软件包已经被成功卸载。

将jdk压缩包通过SecureCRT中的SecureFX将安装包传输到Linux中的指定目录

在这里插入图片描述

如果没有显示本地窗口可以进行以下操作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

将jdk解压到指定的路径

通过 cd 命令进入当前目录下名为 usr/local/software 的目录。

cd  /usr/local/software

使用 tar 命令来解压缩 jdk-8u161-linux-x64.tar.gz 文件

tar -zxvf jdk-8u161-linux-x64.tar.gz  -C /usr/local
  1. 其中:
    • tar 命令是在 Linux 中用于归档和解归档文件的工具。
    • -zxvf 是一些选项参数,指定了解压缩、显示详细信息、使用 gzip 压缩等操作方式。
    • jdk-8u161-linux-x64.tar.gz 是要解压缩的文件名。
    • -C /usr/local 指定了解压缩后的文件存放路径为 /usr/local 目录。

所以,这个命令会将 jdk-8u161-linux-x64.tar.gz 文件解压缩到 /usr/local/jdk1.8.0_161 目录中。也就是将文件解压缩到上一级目录

在这里插入图片描述

可以使用 cd .. 命令返回到上一级目录。该命令会将您的当前工作目录更改为上一级目录,即 /usr/local 目录,您可以在其中使用ls命令查看已经解压的 jdk1.8.0_161 目录和其他文件。

在这里插入图片描述

给解压后的文件目录改个好操作的名字, 你也可以选择不改

mv jdk1.8.0_161 jdk1.8

这个命令的作用是将当前目录下名为 jdk1.8.0_161 的文件夹(或目录)重命名为 jdk1.8。具体来说,mv jdk1.8.0_161 jdk1.8 命令会将当前目录中的 jdk1.8.0_161 目录重命名为 jdk1.8。这个操作可以方便地将该目录与其他版本区分开来,或者为该目录提供更简洁、易读的名称。

在这里插入图片描述

备份配置环境变量文件

注意,设置前先备份,养成习惯

cp /etc/profile /etc/profile_bak

这个命令的作用是将 /etc/profile 文件复制到 /etc/profile_bak

具体来说,cp 是 Linux 中用于复制文件或目录的命令,/etc/profile 是要复制的源文件,/etc/profile_bak 是要复制到的目标文件。

执行该命令后,您会在 /etc 目录下看到一个名为 profile_bak 的新文件,其内容与 /etc/profile 文件相同。这个操作可以方便地备份原始文件,并在修改文件时防止不必要的数据丢失。

修改配置环境变量文件

vi /etc/profile

按i进入输入模式

使用上下键来到文件的最下方的空白处

配置环境变量JAVA_HOME,PATH

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

这个命令使用export指令为环境变量JAVA_HOME和系统路径PATH设置了新值,具体作用如下:

  • export JAVA_HOME=/usr/local/jdk1.8:将环境变量JAVA_HOME的值设置为/usr/local/jdk1.8
  • export PATH=$JAVA_HOME/bin:$PATH:将系统路径PATH的值设置为$JAVA_HOME/bin:$PATH,其中 $JAVA_HOME/bin 是指向 JDK 安装目录下的 bin 目录。这样设置可以确保在执行命令时系统会优先搜索 JDK 的 bin 目录,以便正确执行 Java 程序。

这意味着,当您输入任何需要 Java 的命令时,系统都会在$JAVA_HOME/bin目录下搜索相应的可执行文件。而且,将JAVA_HOMEPATH设置为这些值也能让其他程序更容易地找到 JDK 并与其交互。

ESC返回命令模式然后按冒号进入末行模式输入wq最后回车保存退出
在这里插入图片描述

重写加载环境变量

重新加载环境变量配置文件 source /etc/profile

source /etc/profile

这个命令的作用是加载/etc/profile配置文件中设置的环境变量和系统路径。

具体来说,source命令用于读取并执行指定文件的内容,同时将执行结果反映在当前 shell 环境中。在这个例子中,source /etc/profile 命令将读取并执行 /etc/profile 文件,其中包含了一些环境变量和系统路径的设置。执行后,这些环境变量和系统路径就会被加载到当前 shell 环境中,以便让后续操作能够使用它们。

需要注意的是,source命令和.命令(点号)是等价的,它们都可以用来加载文件中的环境变量和系统路径。

测试

 检查环境变量设置是否有误

env | grep JAVA_HOME

这个命令的作用是查找与环境变量JAVA_HOME相关的信息。

具体来说,env命令用于显示当前 shell 环境中的所有环境变量和相应的值,而grep命令则可以从输出结果中过滤出包含指定字符串的行。因此,env | grep JAVA_HOME 命令将输出当前 shell 环境中所有包含JAVA_HOME字符串的行。

如果之前已经使用 export 命令设置了JAVA_HOME环境变量并成功加载了/etc/profile文件,那么env | grep JAVA_HOME命令的输出结果应该包含JAVA_HOME=/usr/local/jdk1.8这一行。反之,如果没有设置或者设置失败,就不会出现这一行。

安装成功后,验证 Java 是否成功安装:

java -version

如果 JDK 安装成功,则应该看到与以下类似的输出:

java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)

在这里插入图片描述

卸载已安装的JDK

步骤一:检查JDK是否已安装

在终端中输入以下命令:

java -version

如果您已经安装了JDK,则会显示相关版本信息。如果没有,则会提示安装JDK。

步骤二:查找JDK安装路径

在终端中输入以下命令:

which java

该命令将显示JDK安装的路径。您需要记住这个路径,因为后续的步骤需要使用它。

步骤三:卸载JDK

在终端中输入以下命令:

sudo rm -rf JDK地址

请注意,这里的“JDK地址”是第二步中找到的路径。执行此命令将完全删除JDK。

步骤四:删除环境变量

在终端中输入以下命令打开/etc/profile文件:

vi /etc/profile

然后,在编辑模式下,删除以下所有JDK环境变量:

export JAVA_HOME=JDK地址
export PATH=$JAVA_HOME/bin:$PATH

请注意,这里的“JDK地址”是第二步中找到的路径。在删除环境变量后,通过输入以下命令保存更改并退出编辑器:

:wq!

步骤五:检查JDK是否已成功卸载

在终端中输入以下命令:

java -version

应该会提示未找到jdk或类似的信息,这表明您已经成功卸载了JDK。

结论

方法 优点 缺点 适用场景
使用yum包管理器安装 自动化程度高、操作简单易行 依赖于系统源服务器、可能无法安装最新版本JDK 需要快速、方便地安装JDK,并且对JDK的版本要求不高的情况下
手动下载安装 可以自由选择JDK版本、灵活性高 操作较复杂、易出错、需要手动维护 对JDK版本有特殊要求、需要灵活控制JDK选择与版本的情况下
方法 优点 缺点 适用场景
使用yum包管理器移除 自动化程度高、操作简单易行 依赖于系统源服务器、可能无法卸载最新版本JDK 需要快速、方便地卸载JDK,并且对JDK的版本要求不高的情况下
手动删除卸载 可以自由选择JDK版本、灵活性高 操作较复杂、易出错、需要手动维护 需要灵活控制JDK选择与版本的情况下

本篇文章提供了两种不同的方法来在 CentOS 系统上安装与移除JDK,并详细介绍了每种方法的优缺点和适用场景。如果您需要在其他 Linux 发行版上安装 JDK,可以根据本文提供的步骤进行操作。我们希望本篇文章能够帮助您轻松地在 Linux 系统上完成 JDK 的安装,让您更加高效地开发和部署 Java 应用程序。

posted @ 2023-06-12 16:53  鹅不糊涂  阅读(1087)  评论(0编辑  收藏  举报