首页 > 解决方案 > 在 centos 上安装 java 的替代方案

问题描述

我想在我的 CentOS 上升级 java 版本(以前是 1.8.0_144,现在是 1.8.0.201)。我使用了以下命令:

alternatives --install /usr/bin/java java /usr/java/jdk1.8.0_201/jre/bin/java 180201

现在我明白了:

    [root@centos java]# alternatives --display java
java - status is auto.
 link currently points to /usr/java/jdk1.8.0_201/jre/bin/java
/usr/java/jdk1.8.0_144/jre/bin/java - priority 180144
 slave ControlPanel: /usr/java/jdk1.8.0_144/jre/bin/ControlPanel
 slave javaws: /usr/java/jdk1.8.0_144/jre/bin/javaws
 slave jcontrol: /usr/java/jdk1.8.0_144/jre/bin/jcontrol
 slave jjs: /usr/java/jdk1.8.0_144/jre/bin/jjs
 slave keytool: /usr/java/jdk1.8.0_144/jre/bin/keytool
 slave orbd: /usr/java/jdk1.8.0_144/jre/bin/orbd
 slave pack200: /usr/java/jdk1.8.0_144/jre/bin/pack200
 slave policytool: /usr/java/jdk1.8.0_144/jre/bin/policytool
 slave rmid: /usr/java/jdk1.8.0_144/jre/bin/rmid
 slave rmiregistry: /usr/java/jdk1.8.0_144/jre/bin/rmiregistry
 slave servertool: /usr/java/jdk1.8.0_144/jre/bin/servertool
 slave tnameserv: /usr/java/jdk1.8.0_144/jre/bin/tnameserv
 slave unpack200: /usr/java/jdk1.8.0_144/jre/bin/unpack200
 slave java.1: /usr/java/jdk1.8.0_144/man/man1/java.1
 slave javaws.1: /usr/java/jdk1.8.0_144/man/man1/javaws.1
 slave jjs.1: /usr/java/jdk1.8.0_144/man/man1/jjs.1
 slave keytool.1: /usr/java/jdk1.8.0_144/man/man1/keytool.1
 slave orbd.1: /usr/java/jdk1.8.0_144/man/man1/orbd.1
 slave pack200.1: /usr/java/jdk1.8.0_144/man/man1/pack200.1
 slave policytool.1: /usr/java/jdk1.8.0_144/man/man1/policytool.1
 slave rmid.1: /usr/java/jdk1.8.0_144/man/man1/rmid.1
 slave rmiregistry.1: /usr/java/jdk1.8.0_144/man/man1/rmiregistry.1
 slave servertool.1: /usr/java/jdk1.8.0_144/man/man1/servertool.1
 slave tnameserv.1: /usr/java/jdk1.8.0_144/man/man1/tnameserv.1
 slave unpack200.1: /usr/java/jdk1.8.0_144/man/man1/unpack200.1
/usr/java/jdk1.8.0_201/jre/bin/java - priority 180201
 slave ControlPanel: (null)
 slave javaws: (null)
 slave jcontrol: (null)
 slave jjs: (null)
 slave keytool: (null)
 slave orbd: (null)
 slave pack200: (null)
 slave policytool: (null)
 slave rmid: (null)
 slave rmiregistry: (null)
 slave servertool: (null)
 slave tnameserv: (null)
 slave unpack200: (null)
 slave java.1: (null)
 slave javaws.1: (null)
 slave jjs.1: (null)
 slave keytool.1: (null)
 slave orbd.1: (null)
 slave pack200.1: (null)
 slave policytool.1: (null)
 slave rmid.1: (null)
 slave rmiregistry.1: (null)
 slave servertool.1: (null)
 slave tnameserv.1: (null)
 slave unpack200.1: (null)
Current `best' version is /usr/java/jdk1.8.0_201/jre/bin/java.

此外,/etc/alternatives 文件夹中的许多从属链接仍指向旧的 java 版本,例如

lrwxrwxrwx   1 root root   38 Mar 17 14:12 keytool -> /usr/java/jdk1.8.0_144/jre/bin/keytool

这些从属链接不应该自动更改吗?

标签: javalinuxjava-8centoscentos7

解决方案


以下命令将允许您设置在 CentOS 中使用的默认 Java 版本:

$ sudo alternatives --config java

如果成功,您应该会看到1.8.0_201新的默认版本:

$ java -version

推荐阅读