【发布时间】:2016-07-19 06:20:55
【问题描述】:
我正在尝试使用 java alternatives 从 1.8 降级到 java 1.6。然而,尽管通过--set 在替代方案中正确设置了这一点,java 版本仍然返回1.8:
Selection Command
-----------------------------------------------
*+ 1 /usr/java/jre1.6.0_37/bin/java
2 /usr/java/jre1.8.0_66/bin/java
java -version
java version "1.8.0_66"
然后仔细观察会发现/usr/bin/java 将始终指向最新版本,因为:
ls -la /usr/bin/java
lrwxrwxrwx 1 root root 26 Mar 31 11:27 /usr/bin/java -> /usr/java/default/bin/java
ls -la /usr/java/
total 20
drwxr-xr-x 4 root root 4096 Mar 31 11:30 .
drwxr-xr-x 16 root root 4096 Oct 7 11:41 ..
lrwxrwxrwx 1 root root 16 Mar 31 11:27 default -> /usr/java/latest
drwxr-xr-x 7 root root 4096 Mar 31 11:27 jre1.6.0_37
drwxr-xr-x 7 root root 4096 Mar 31 11:30 jre1.8.0_66
lrwxrwxrwx 1 root root 21 Mar 31 11:30 latest -> /usr/java/jre1.8.0_66
我在 2 个独立的 RHEL 5.10/11 系统上经历过这种情况。在尝试在 CentOS 上复制此内容时,我注意到 /usr/bin/java 链接到 /etc/alternatives/java。
回到我的RHEL系统看了/etc/alternatives/java:
ls -la /etc/alternatives/
total 24
drwxr-xr-x 2 root root 4096 Mar 31 12:02 .
drwxr-xr-x 78 root root 12288 Sep 25 2012 ..
lrwxrwxrwx 1 root root 30 Mar 31 12:02 java -> /usr/java/jre1.6.0_37/bin/java
正如预期的那样,它链接到正确的版本,这意味着 /usr/bin/java 应该链接到 /etc/alternatives/java。
为什么这不是默认行为?只是将符号链接更改为“/etc/alternatives/java”来管理降级吗?
【问题讨论】: