Cool
Cool
Published on 2021-11-11 / 48 Visits
0
0

升级Centos7自带的Java

Centos7自带Java

(1)查看原自带版本

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

(2)查看java程序路径

[root@localhost ~]# which java
/usr/bin/java

(3)查看java相关路径

[root@localhost ~]# whereis java
java: /usr/bin/java /usr/lib/java /etc/java /usr/share/java /usr/share/man/man1/java.1.gz

(4)查看JAVA_HOME环境变量

[root@localhost ~]# echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64/ 

{message type="success" content="注:如果没有配置"/etc/profile"文件,则不会输出"$JAVA_HOME"的值。"/}

删除自带java(可以选择不删除也没事)

(1)查看CentOS自带JDK是否已安装

[root@localhost ~]# yum list installed | grep java
java-1.7.0-openjdk.x86_64              1:1.7.0.141-2.6.10.5.el7        @anaconda
java-1.7.0-openjdk-headless.x86_64     1:1.7.0.141-2.6.10.5.el7        @anaconda
java-1.8.0-openjdk.x86_64              1:1.8.0.131-11.b12.el7          @anaconda
java-1.8.0-openjdk-headless.x86_64     1:1.8.0.131-11.b12.el7          @anaconda
javapackages-tools.noarch              3.4.1-11.el7                    @anaconda
python-javapackages.noarch             3.4.1-11.el7                    @anaconda
tzdata-java.noarch                     2017b-1.el7                     @anaconda

(2)假使存在自带的jdk,删除centos自带的JDK

yum -y remove java-1.7.0-openjdk*
yum -y remove java-1.8.0-openjdk*
yum -y remove tzdata-java.noarch

(3)查看yum库下的java安装包

[root@localhost ~]# yum -y list java
已加载插件:fastestmirror, langpacks
epel/x86_64/metalink                                                                                                                                                        | 5.8 kB  00:00:00     
https://mirrors.tuna.tsinghua.edu.cn/epel/7/x86_64/repodata/repomd.xml: [Errno 12] Timeout on https://mirrors.tuna.tsinghua.edu.cn/epel/7/x86_64/repodata/repomd.xml: (28, 'Resolving timed out after 30552 milliseconds')
正在尝试其它镜像。
epel                                                                                                                                                                        | 3.2 kB  00:00:00     
(1/3): epel/x86_64/updateinfo                                                                                                                                               | 934 kB  00:00:07     
(2/3): epel/x86_64/primary                                                                                                                                                  | 3.5 MB  00:00:08     
(3/3): epel/x86_64/group_gz                                                                                                                                                 |  88 kB  00:00:11     
Loading mirror speeds from cached hostfile
 * base: mirrors.shu.edu.cn
 * epel: mirror01.idc.hinet.net
 * extras: mirrors.shu.edu.cn
 * updates: mirrors.neusoft.edu.cn
epel                                                                                                                                                                                   12590/12590
错误:没有匹配的软件包可以列出
[root@cvm-3igsk5y28a225 etc]# yum -y list java*
Loaded plugins: fastestmirror, product-id, search-disabled-repos, subscription-manager

This system is not registered with an entitlement server. You can use subscription-manager to register.

Loading mirror speeds from cached hostfile
 * base: mirrors.tuna.tsinghua.edu.cn
 * centos-sclo-rh: mirrors.bupt.edu.cn
 * epel: d2lzkl7pfhq30w.cloudfront.net
 * extras: mirrors.bupt.edu.cn
 * updates: mirrors.bupt.edu.cn
Available Packages
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.312.b07-1.el7_9             updates
java-1.8.0-openjdk.x86_64                                1:1.8.0.312.b07-1.el7_9             updates
java-1.8.0-openjdk-accessibility.i686                    1:1.8.0.312.b07-1.el7_9             updates
java-1.8.0-openjdk-accessibility.x86_64                  1:1.8.0.312.b07-1.el7_9             updates
java-1.8.0-openjdk-demo.i686                             1:1.8.0.312.b07-1.el7_9             updates
java-1.8.0-openjdk-demo.x86_64                           1:1.8.0.312.b07-1.el7_9             updates
java-1.8.0-openjdk-devel.i686                            1:1.8.0.312.b07-1.el7_9             updates
java-1.8.0-openjdk-devel.x86_64                          1:1.8.0.312.b07-1.el7_9             updates
java-1.8.0-openjdk-headless.i686                         1:1.8.0.312.b07-1.el7_9             updates
java-1.8.0-openjdk-headless.x86_64                       1:1.8.0.312.b07-1.el7_9             updates
java-1.8.0-openjdk-javadoc.noarch                        1:1.8.0.312.b07-1.el7_9             updates
java-1.8.0-openjdk-javadoc-zip.noarch                    1:1.8.0.312.b07-1.el7_9             updates
java-1.8.0-openjdk-src.i686                              1:1.8.0.312.b07-1.el7_9             updates
java-1.8.0-openjdk-src.x86_64                            1:1.8.0.312.b07-1.el7_9             updates
java-11-openjdk.i686                                     1:11.0.13.0.8-1.el7_9               updates
java-11-openjdk.x86_64                                   1:11.0.13.0.8-1.el7_9               updates
java-11-openjdk-demo.i686                                1:11.0.13.0.8-1.el7_9               updates
java-11-openjdk-demo.x86_64                              1:11.0.13.0.8-1.el7_9               updates
java-11-openjdk-devel.i686                               1:11.0.13.0.8-1.el7_9               updates
java-11-openjdk-devel.x86_64                             1:11.0.13.0.8-1.el7_9               updates
java-11-openjdk-headless.i686                            1:11.0.13.0.8-1.el7_9               updates
java-11-openjdk-headless.x86_64                          1:11.0.13.0.8-1.el7_9               updates
java-11-openjdk-javadoc.i686                             1:11.0.13.0.8-1.el7_9               updates
java-11-openjdk-javadoc.x86_64                           1:11.0.13.0.8-1.el7_9               updates
java-11-openjdk-javadoc-zip.i686                         1:11.0.13.0.8-1.el7_9               updates
java-11-openjdk-javadoc-zip.x86_64                       1:11.0.13.0.8-1.el7_9               updates
java-11-openjdk-jmods.i686                               1:11.0.13.0.8-1.el7_9               updates
java-11-openjdk-jmods.x86_64                             1:11.0.13.0.8-1.el7_9               updates
java-11-openjdk-src.i686                                 1:11.0.13.0.8-1.el7_9               updates
java-11-openjdk-src.x86_64                               1:11.0.13.0.8-1.el7_9               updates
java-11-openjdk-static-libs.i686                         1:11.0.13.0.8-1.el7_9               updates
java-11-openjdk-static-libs.x86_64                       1:11.0.13.0.8-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-dirq.noarch                                         1.8-1.el7                           epel   
java-dirq-javadoc.noarch                                 1.8-1.el7                           epel   
java-latest-openjdk.x86_64                               1:17.0.1.0.12-1.rolling.el7         epel   
java-latest-openjdk-debug.x86_64                         1:17.0.1.0.12-1.rolling.el7         epel   
java-latest-openjdk-demo.x86_64                          1:17.0.1.0.12-1.rolling.el7         epel   
java-latest-openjdk-demo-debug.x86_64                    1:17.0.1.0.12-1.rolling.el7         epel   
java-latest-openjdk-demo-fastdebug.x86_64                1:17.0.1.0.12-1.rolling.el7         epel   
java-latest-openjdk-devel.x86_64                         1:17.0.1.0.12-1.rolling.el7         epel   
java-latest-openjdk-devel-debug.x86_64                   1:17.0.1.0.12-1.rolling.el7         epel   
java-latest-openjdk-devel-fastdebug.x86_64               1:17.0.1.0.12-1.rolling.el7         epel   
java-latest-openjdk-fastdebug.x86_64                     1:17.0.1.0.12-1.rolling.el7         epel   
java-latest-openjdk-headless.x86_64                      1:17.0.1.0.12-1.rolling.el7         epel   
java-latest-openjdk-headless-debug.x86_64                1:17.0.1.0.12-1.rolling.el7         epel   
java-latest-openjdk-headless-fastdebug.x86_64            1:17.0.1.0.12-1.rolling.el7         epel   
java-latest-openjdk-javadoc.x86_64                       1:17.0.1.0.12-1.rolling.el7         epel   
java-latest-openjdk-javadoc-zip.x86_64                   1:17.0.1.0.12-1.rolling.el7         epel   
java-latest-openjdk-jmods.x86_64                         1:17.0.1.0.12-1.rolling.el7         epel   
java-latest-openjdk-jmods-debug.x86_64                   1:17.0.1.0.12-1.rolling.el7         epel   
java-latest-openjdk-jmods-fastdebug.x86_64               1:17.0.1.0.12-1.rolling.el7         epel   
java-latest-openjdk-src.x86_64                           1:17.0.1.0.12-1.rolling.el7         epel   
java-latest-openjdk-src-debug.x86_64                     1:17.0.1.0.12-1.rolling.el7         epel   
java-latest-openjdk-src-fastdebug.x86_64                 1:17.0.1.0.12-1.rolling.el7         epel   
java-latest-openjdk-static-libs.x86_64                   1:17.0.1.0.12-1.rolling.el7         epel   
java-latest-openjdk-static-libs-debug.x86_64             1:17.0.1.0.12-1.rolling.el7         epel   
java-latest-openjdk-static-libs-fastdebug.x86_64         1:17.0.1.0.12-1.rolling.el7         epel   
java-oauth.noarch                                        20100601-13.el7                     epel   
java-oauth-javadoc.noarch                                20100601-13.el7                     epel   
java-runtime-decompiler.noarch                           5.1-1.el7                           epel   
java-runtime-decompiler-javadoc.noarch                   5.1-1.el7                           epel   
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   
javaparser.noarch                                        1.0.11-3.el7                        epel   
javaparser-javadoc.noarch                                1.0.11-3.el7                        epel   
javassist.noarch                                         3.16.1-10.el7                       base   
javassist-javadoc.noarch                                 3.16.1-10.el7                       base   
javastroke.x86_64                                        0.5.1-33.el7                        epel   
javawriter.noarch                                        2.5.1-4.el7                         epel   
javawriter-javadoc.noarch                                2.5.1-4.el7                         epel   

{tabs} {tabs-pane label="安装java 11"}

(4)安装java 11

yum -y install java-11-openjdk*

{/tabs-pane} {tabs-pane label="安装java-1.8"} (4)安装java-1.8.0-openjdk.x86_64

[root@localhost ~]# yum -y install java-1.8.0-openjdk*

{/tabs-pane} {/tabs}

(5)查看是否安装最新版java

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

{message type="success" content="发现并没有切换到java11"/}

(6)使用update-alternatives 查看已安装的java版本

[root@cvm-3igsk5y28a225 /]# update-alternatives --list
libnssckbi.so.x86_64    auto    /usr/lib64/pkcs11/p11-kit-trust.so
ld      auto    /usr/bin/ld.bfd
mta     auto    /usr/sbin/sendmail.postfix
java    manual  /usr/lib/jvm/java-11-openjdk-11.0.13.0.8-1.el7_9.x86_64/bin/java
javac   auto    /usr/java/jdk1.8.0_121/bin/javac
jre_openjdk     auto    /usr/lib/jvm/java-11-openjdk-11.0.13.0.8-1.el7_9.x86_64
jre_11  auto    /usr/lib/jvm/java-11-openjdk-11.0.13.0.8-1.el7_9.x86_64
jre_11_openjdk  auto    /usr/lib/jvm/jre-11-openjdk-11.0.13.0.8-1.el7_9.x86_64
java_sdk_openjdk        auto    /usr/lib/jvm/java-11-openjdk-11.0.13.0.8-1.el7_9.x86_64
java_sdk_11     auto    /usr/lib/jvm/java-11-openjdk-11.0.13.0.8-1.el7_9.x86_64
java_sdk_11_openjdk     auto    /usr/lib/jvm/java-11-openjdk-11.0.13.0.8-1.el7_9.x86_64
javadoczip      auto    /usr/share/javadoc/java-11-openjdk-11.0.13.0.8-1.el7_9.x86_64.zip
javadocdir      auto    /usr/share/javadoc/java-11-openjdk-11.0.13.0.8-1.el7_9.x86_64/api

版本切换

update-alternatives --config java

选择自己想要的版本就好了

There are 2 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
*+ 1           /usr/java/jdk1.8.0_121/jre/bin/java
   2           java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.13.0.8-1.el7_9.x86_64/bin/java)

检查版本

[root@cvm-3igsk5y28a225 /]# java -version
openjdk version "11.0.13" 2021-10-19 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.13+8-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.13+8-LTS, mixed mode, sharing)

(7)重新安装后,jps命令可以使用

[root@localhost ~]# jps
6140 Jps

(8)查看java的编译器命令

[root@localhost ~]# javac
用法: javac <options> <source files>
其中, 可能的选项包括:
  -g                         生成所有调试信息
  -g:none                    不生成任何调试信息
  -g:{lines,vars,source}     只生成某些调试信息
  -nowarn                    不生成任何警告
  -verbose                   输出有关编译器正在执行的操作的消息
  -deprecation               输出使用已过时的 API 的源位置
  -classpath <路径>            指定查找用户类文件和注释处理程序的位置
  -cp <路径>                   指定查找用户类文件和注释处理程序的位置
  -sourcepath <路径>           指定查找输入源文件的位置
  -bootclasspath <路径>        覆盖引导类文件的位置
  -extdirs <目录>              覆盖所安装扩展的位置
  -endorseddirs <目录>         覆盖签名的标准路径的位置
  -proc:{none,only}          控制是否执行注释处理和/或编译。
  -processor <class1>[,<class2>,<class3>...] 要运行的注释处理程序的名称; 绕过默认的搜索进程
  -processorpath <路径>        指定查找注释处理程序的位置
  -parameters                生成元数据以用于方法参数的反射
  -d <目录>                    指定放置生成的类文件的位置
  -s <目录>                    指定放置生成的源文件的位置
  -h <目录>                    指定放置生成的本机标头文件的位置
  -implicit:{none,class}     指定是否为隐式引用文件生成类文件
  -encoding <编码>             指定源文件使用的字符编码
  -source <发行版>              提供与指定发行版的源兼容性
  -target <发行版>              生成特定 VM 版本的类文件
  -profile <配置文件>            请确保使用的 API 在指定的配置文件中可用
  -version                   版本信息
  -help                      输出标准选项的提要
  -A关键字[=值]                  传递给注释处理程序的选项
  -X                         输出非标准选项的提要
  -J<标记>                     直接将 <标记> 传递给运行时系统
  -Werror                    出现警告时终止编译
  @<文件名>                     从文件读取选项和文件名

Comment