卸载干净当前的版本

查看当前的jdk版本,并卸载。 如果之前没有安装过可以跳过这个步骤

  1. [root@localhost opt]# rpm -qa|grep java
  2. java-1.6.0-openjdk-1.6.0.37-1.13.9.4.el5_11
  3. tzdata-java-2015g-1.el5
  1. [root@localhost opt]# rpm -e --allmatches --nodeps java-1.6.0-openjdk-1.6.0.37-1.13.9.4.el5_11
  2. [root@localhost opt]# rpm -e --allmatches --nodeps tzdata-java-2015g-1.el5

安装Jdk

1. 查找 java 相关列表

命令 :yum search jdkyum search jdk

  1. [root@localhost ~]# yum -y list java*
  2. 已加载插件:fastestmirror
  3. Loading mirror speeds from cached hostfile
  4. * base: mirrors.ustc.edu.cn
  5. * extras: mirrors.ustc.edu.cn
  6. * updates: mirrors.aliyun.com
  7. 可安装的软件包
  8. java-1.6.0-openjdk.x86_64 1:1.6.0.41-1.13.13.1.el7_3 base
  9. java-1.6.0-openjdk-demo.x86_64 1:1.6.0.41-1.13.13.1.el7_3 base
  10. java-1.6.0-openjdk-devel.x86_64 1:1.6.0.41-1.13.13.1.el7_3 base
  11. java-1.6.0-openjdk-javadoc.x86_64 1:1.6.0.41-1.13.13.1.el7_3 base
  12. java-1.6.0-openjdk-src.x86_64 1:1.6.0.41-1.13.13.1.el7_3 base
  13. java-1.7.0-openjdk.x86_64 1:1.7.0.261-2.6.22.2.el7_8 base
  14. java-1.7.0-openjdk-accessibility.x86_64 1:1.7.0.261-2.6.22.2.el7_8 base
  15. java-1.7.0-openjdk-demo.x86_64 1:1.7.0.261-2.6.22.2.el7_8 base
  16. java-1.7.0-openjdk-devel.x86_64 1:1.7.0.261-2.6.22.2.el7_8 base
  17. java-1.7.0-openjdk-headless.x86_64 1:1.7.0.261-2.6.22.2.el7_8 base
  18. java-1.7.0-openjdk-javadoc.noarch 1:1.7.0.261-2.6.22.2.el7_8 base
  19. java-1.7.0-openjdk-src.x86_64 1:1.7.0.261-2.6.22.2.el7_8 base
  20. java-1.8.0-openjdk.i686 1:1.8.0.332.b09-1.el7_9 updates
  21. java-1.8.0-openjdk.x86_64 1:1.8.0.332.b09-1.el7_9 updates
  22. java-1.8.0-openjdk-accessibility.i686 1:1.8.0.332.b09-1.el7_9 updates
  23. java-1.8.0-openjdk-accessibility.x86_64 1:1.8.0.332.b09-1.el7_9 updates
  24. java-1.8.0-openjdk-demo.i686 1:1.8.0.332.b09-1.el7_9 updates
  25. java-1.8.0-openjdk-demo.x86_64 1:1.8.0.332.b09-1.el7_9 updates
  26. java-1.8.0-openjdk-devel.i686 1:1.8.0.332.b09-1.el7_9 updates
  27. java-1.8.0-openjdk-devel.x86_64 1:1.8.0.332.b09-1.el7_9 updates
  28. java-1.8.0-openjdk-headless.i686 1:1.8.0.332.b09-1.el7_9 updates
  29. java-1.8.0-openjdk-headless.x86_64 1:1.8.0.332.b09-1.el7_9 updates
  30. java-1.8.0-openjdk-javadoc.noarch 1:1.8.0.332.b09-1.el7_9 updates
  31. java-1.8.0-openjdk-javadoc-zip.noarch 1:1.8.0.332.b09-1.el7_9 updates
  32. java-1.8.0-openjdk-src.i686 1:1.8.0.332.b09-1.el7_9 updates
  33. java-1.8.0-openjdk-src.x86_64 1:1.8.0.332.b09-1.el7_9 updates
  34. java-11-openjdk.i686 1:11.0.15.0.9-2.el7_9 updates
  35. java-11-openjdk.x86_64 1:11.0.15.0.9-2.el7_9 updates
  36. java-11-openjdk-demo.i686 1:11.0.15.0.9-2.el7_9 updates
  37. java-11-openjdk-demo.x86_64 1:11.0.15.0.9-2.el7_9 updates
  38. java-11-openjdk-devel.i686 1:11.0.15.0.9-2.el7_9 updates
  39. java-11-openjdk-devel.x86_64 1:11.0.15.0.9-2.el7_9 updates
  40. java-11-openjdk-headless.i686 1:11.0.15.0.9-2.el7_9 updates
  41. java-11-openjdk-headless.x86_64 1:11.0.15.0.9-2.el7_9 updates
  42. java-11-openjdk-javadoc.i686 1:11.0.15.0.9-2.el7_9 updates
  43. java-11-openjdk-javadoc.x86_64 1:11.0.15.0.9-2.el7_9 updates
  44. java-11-openjdk-javadoc-zip.i686 1:11.0.15.0.9-2.el7_9 updates
  45. java-11-openjdk-javadoc-zip.x86_64 1:11.0.15.0.9-2.el7_9 updates
  46. java-11-openjdk-jmods.i686 1:11.0.15.0.9-2.el7_9 updates
  47. java-11-openjdk-jmods.x86_64 1:11.0.15.0.9-2.el7_9 updates
  48. java-11-openjdk-src.i686 1:11.0.15.0.9-2.el7_9 updates
  49. java-11-openjdk-src.x86_64 1:11.0.15.0.9-2.el7_9 updates
  50. java-11-openjdk-static-libs.i686 1:11.0.15.0.9-2.el7_9 updates
  51. java-11-openjdk-static-libs.x86_64 1:11.0.15.0.9-2.el7_9 updates
  52. java-atk-wrapper.i686 0.30.4-5.el7 base
  53. java-atk-wrapper.x86_64 0.30.4-5.el7 base
  54. java_cup.noarch 1:0.11a-16.el7 base
  55. java_cup-javadoc.noarch 1:0.11a-16.el7 base
  56. java_cup-manual.noarch 1:0.11a-16.el7 base
  57. javacc.noarch 5.0-10.el7 base
  58. javacc-demo.noarch 5.0-10.el7 base
  59. javacc-javadoc.noarch 5.0-10.el7 base
  60. javacc-manual.noarch 5.0-10.el7 base
  61. javacc-maven-plugin.noarch 2.6-17.el7 base
  62. javacc-maven-plugin-javadoc.noarch 2.6-17.el7 base
  63. javamail.noarch 1.4.6-8.el7 base
  64. javamail-javadoc.noarch 1.4.6-8.el7 base
  65. javapackages-tools.noarch 3.4.1-11.el7 base
  66. javassist.noarch 3.16.1-10.el7 base
  67. javassist-javadoc.noarch 3.16.1-10.el7 base
  68. [root@localhost ~]#
  1. [root@localhost ~]# yum search jdk
  2. 已加载插件:fastestmirror
  3. Loading mirror speeds from cached hostfile
  4. * base: mirrors.ustc.edu.cn
  5. * extras: mirrors.ustc.edu.cn
  6. * updates: mirrors.aliyun.com
  7. ==================================================================================== N/S matched: jdk ====================================================================================
  8. copy-jdk-configs.noarch : JDKs configuration files copier
  9. java-1.6.0-openjdk.x86_64 : OpenJDK Runtime Environment
  10. java-1.6.0-openjdk-demo.x86_64 : OpenJDK Demos
  11. java-1.6.0-openjdk-devel.x86_64 : OpenJDK Development Environment
  12. java-1.6.0-openjdk-javadoc.x86_64 : OpenJDK API Documentation
  13. java-1.6.0-openjdk-src.x86_64 : OpenJDK Source Bundle
  14. java-1.7.0-openjdk.x86_64 : OpenJDK Runtime Environment
  15. java-1.7.0-openjdk-accessibility.x86_64 : OpenJDK accessibility connector
  16. java-1.7.0-openjdk-demo.x86_64 : OpenJDK Demos
  17. java-1.7.0-openjdk-devel.x86_64 : OpenJDK Development Environment
  18. java-1.7.0-openjdk-headless.x86_64 : The OpenJDK runtime environment without audio and video support
  19. java-1.7.0-openjdk-javadoc.noarch : OpenJDK API Documentation
  20. java-1.7.0-openjdk-src.x86_64 : OpenJDK Source Bundle
  21. java-1.8.0-openjdk.i686 : OpenJDK Runtime Environment 8
  22. java-1.8.0-openjdk.x86_64 : OpenJDK 8 Runtime Environment
  23. java-1.8.0-openjdk-accessibility.i686 : OpenJDK accessibility connector
  24. java-1.8.0-openjdk-accessibility.x86_64 : OpenJDK accessibility connector
  25. java-1.8.0-openjdk-demo.i686 : OpenJDK Demos 8
  26. java-1.8.0-openjdk-demo.x86_64 : OpenJDK 8 Demos
  27. java-1.8.0-openjdk-devel.i686 : OpenJDK Development Environment 8
  28. java-1.8.0-openjdk-devel.x86_64 : OpenJDK 8 Development Environment
  29. java-1.8.0-openjdk-headless.i686 : OpenJDK Headless Runtime Environment 8
  30. java-1.8.0-openjdk-headless.x86_64 : OpenJDK 8 Headless Runtime Environment
  31. java-1.8.0-openjdk-javadoc.noarch : OpenJDK 8 API documentation
  32. java-1.8.0-openjdk-javadoc-zip.noarch : OpenJDK 8 API documentation compressed in a single archive
  33. java-1.8.0-openjdk-src.i686 : OpenJDK Source Bundle 8
  34. java-1.8.0-openjdk-src.x86_64 : OpenJDK 8 Source Bundle
  35. java-11-openjdk.i686 : OpenJDK Runtime Environment 11
  36. java-11-openjdk.x86_64 : OpenJDK 11 Runtime Environment
  37. java-11-openjdk-demo.i686 : OpenJDK Demos 11
  38. java-11-openjdk-demo.x86_64 : OpenJDK 11 Demos
  39. java-11-openjdk-devel.i686 : OpenJDK Development Environment 11
  40. java-11-openjdk-devel.x86_64 : OpenJDK 11 Development Environment
  41. java-11-openjdk-headless.i686 : OpenJDK Headless Runtime Environment 11
  42. java-11-openjdk-headless.x86_64 : OpenJDK 11 Headless Runtime Environment
  43. java-11-openjdk-javadoc.i686 : OpenJDK 11 API documentation
  44. java-11-openjdk-javadoc.x86_64 : OpenJDK 11 API documentation
  45. java-11-openjdk-javadoc-zip.i686 : OpenJDK 11 API documentation compressed in a single archive
  46. java-11-openjdk-javadoc-zip.x86_64 : OpenJDK 11 API documentation compressed in a single archive
  47. java-11-openjdk-jmods.i686 : JMods for OpenJDK 11
  48. java-11-openjdk-jmods.x86_64 : JMods for OpenJDK 11
  49. java-11-openjdk-src.i686 : OpenJDK Source Bundle 11
  50. java-11-openjdk-src.x86_64 : OpenJDK 11 Source Bundle
  51. java-11-openjdk-static-libs.i686 : OpenJDK libraries for static linking 11
  52. java-11-openjdk-static-libs.x86_64 : OpenJDK 11 libraries for static linking
  53. ldapjdk-javadoc.noarch : Javadoc for ldapjdk
  54. icedtea-web.x86_64 : Additional Java components for OpenJDK - Java browser plug-in and Web Start implementation
  55. ldapjdk.noarch : The Mozilla LDAP Java SDK
  56. 名称和简介匹配 only,使用“search all”试试。

2. 安装

安装 jre

  1. [root@localhost ~]# yum install java-11-openjdk.x86_64
  2. Total download size: 44 M
  3. Is this ok [y/N]: y

安装jdk(后面带devel的才是jdk)

  1. [root@localhost ~]# yum install java-11-openjdk-devel.x86_64
  2. Total download size: 44 M
  3. Is this ok [y/N]: y

3.安装完成之后,验证

  1. [root@localhost ~]# java -version
  2. openjdk version "11.0.15" 2022-04-19 LTS
  3. OpenJDK Runtime Environment 18.9 (build 11.0.15+9-LTS)
  4. OpenJDK 64-Bit Server VM 18.9 (build 11.0.15+9-LTS, mixed mode, sharing)

4. 通过 yum 默认安装的路径为 /usr/lib/jvm

  1. [root@localhost ~]# cd /usr/lib/jvm
  2. [root@localhost jvm]# ll
  3. 总用量 0
  4. lrwxrwxrwx. 1 root root 26 6 30 00:51 java -> /etc/alternatives/java_sdk
  5. lrwxrwxrwx. 1 root root 29 6 30 00:51 java-11 -> /etc/alternatives/java_sdk_11
  6. lrwxrwxrwx. 1 root root 37 6 30 00:51 java-11-openjdk -> /etc/alternatives/java_sdk_11_openjdk
  7. drwxr-xr-x. 8 root root 97 6 30 00:51 java-11-openjdk-11.0.15.0.9-2.el7_9.x86_64
  8. lrwxrwxrwx. 1 root root 34 6 30 00:51 java-openjdk -> /etc/alternatives/java_sdk_openjdk
  9. lrwxrwxrwx. 1 root root 21 6 30 00:51 jre -> /etc/alternatives/jre
  10. lrwxrwxrwx. 1 root root 24 6 30 00:51 jre-11 -> /etc/alternatives/jre_11
  11. lrwxrwxrwx. 1 root root 32 6 30 00:51 jre-11-openjdk -> /etc/alternatives/jre_11_openjdk
  12. lrwxrwxrwx. 1 root root 42 6 30 00:51 jre-11-openjdk-11.0.15.0.9-2.el7_9.x86_64 -> java-11-openjdk-11.0.15.0.9-2.el7_9.x86_64
  13. lrwxrwxrwx. 1 root root 29 6 30 00:51 jre-openjdk -> /etc/alternatives/jre_openjdk

如果机器上同时安装了多个 jdk 的话,java 命令只能指向一个版本的 jdk,为了在全局中方便修改 jdk 版本
/etc/alternatives 的目录下面会有个 java 链接,指向默认需要执行的版本的 jdk 的 bin/java 命令

  1. [root@localhost jvm]# cd /etc/alternatives
  2. [root@localhost alternatives]# ll
  3. total 204
  4. lrwxrwxrwx. 1 root root 64 6 30 00:51 java -> /usr/lib/jvm/java-11-openjdk-11.0.15.0.9-2.el7_9.x86_64/bin/java

而 /etc/alternatives/java 又会被软连接到 /usr/bin/java

  1. [root@localhost alternatives]# cd /usr/bin
  2. [root@localhost bin]# ll |grep java
  3. lrwxrwxrwx 1 root root 22 Jan 12 20:01 java -> /etc/alternatives/java

5. 将 jdk 的安装路径加入到JAVA_HOME

  1. [root@localhost bin]# vi /etc/profile

在文件最后加入:

  1. #set java environment
  2. JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.15.0.9-2.el7_9.x86_64
  3. PATH=$PATH:$JAVA_HOME/bin
  4. CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  5. export JAVA_HOME CLASSPATH PATH

修改 /etc/profile 之后让其生效

  1. [root@localhost]# . /etc/profile

注意 . 之后应有一个空格

参考:
[1] 在linux上通过yum安装JDK