【问题标题】:Why does /usr/bin/java link to /usr/java/default/bin/java?为什么 /usr/bin/java 链接到 /usr/java/default/bin/java?
【发布时间】:2016-07-19 06:20:55
【问题描述】:

我正在尝试使用 java alternatives1.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”来管理降级吗?

【问题讨论】:

    标签: java linux alternate


    【解决方案1】:

    RPM 包创建两个链接:/usr/java/latest/usr/java/default

    1. /usr/java/latest 链接将始终指向被视为最新版本的 Java 版本。如果包不是最新版本,后续升级包会覆盖这个值。

    2. 默认情况下,/usr/java/default 指向/usr/java/latest。但是,如果管理员将/usr/java/default更改为指向另一个Java版本,后续的包升级将由管理员提供且无法覆盖。

    至于 RHEL 上的替代方案,请遵循以下说明:

    How to use alternatives for setting default JDK?

    您对此进行过审核吗? Problem changing Java version using alternatives

    【讨论】:

    • 谢谢,但请解释一下为什么 /usr/bin/java 默认指向最新而不是 'etc/alternatives/java' ?只是将符号链接更改为/etc/alternatives/java 来管理降级吗?
    • 关于突出显示的现有问题,我的问题是降级。升级按预期工作,并本地化为 /usr/bin/java 符号链接的内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-12
    • 1970-01-01
    • 2012-06-08
    • 1970-01-01
    • 2016-01-05
    • 1970-01-01
    • 2014-03-03
    相关资源
    最近更新 更多