如何设置默认 Java 版本

如何设置默认 Java 版本

我一直在 Ubuntu 11.10 上使用 Java 6,但现在我想更新到版本 7。我已经通过 PPA 安装了版本 7如这里所述如果我跑

sudo update-alternatives --config java

我得到以下输出:

There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                     Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-7-oracle/jre/bin/java   64        auto mode
  1            /usr/lib/jvm/java-6-sun/jre/bin/java      63        manual mode
* 2            /usr/lib/jvm/java-7-oracle/jre/bin/java   64        manual mode

同样,如果我运行:

sudo update-alternatives --config javac

我得到输出:

  Selection    Path                                  Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-7-oracle/bin/javac   64        auto mode
  1            /usr/lib/jvm/java-6-sun/bin/javac      63        manual mode
* 2            /usr/lib/jvm/java-7-oracle/bin/javac   64        manual mode

因此看起来版本 7 已经是默认版本了。但如果我运行

java -version

或者

javac -version

输出表明版本 6 仍为默认版本。如何将默认版本设置为版本 7?

答案1

根据这个答案:如何设置默认 Java 版本?

首先尝试提供明确的路径update-alternatives --install,然后运行update-alternatives进行选择:

sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/java-7-oracle/jre/bin/java" 1

sudo update-alternatives --config java

sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/java-7-oracle/bin/javac" 1

sudo update-alternatives --config javac

答案2

您也需要设置javac

sudo update-alternatives --config javac

答案3

我遇到了同样的问题。我安装了 sun jdk6。之后

    sudo update-alternatives --config java
    sudo update-alternatives --config javac
    sudo update-alternatives --config javaws

我需要重新启动。然后它就起作用了。

编辑:我意识到仅执行上述步骤是不够的。

我还必须编辑环境变量:

    sudo nano /etc/environment

并添加(不同的 Java 版本将需要不同的字符串):

    JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64"

答案4

我猜你的 java 二进制文件指向的是除 之外的某个地方/etc/alternatives/java

检查输出:type java

它说了吗/usr/bin/java?如果是这样,那么检查它是否正确地指向替代方案:

ls -l /usr/bin/java应显示它指向/etc/alternatives/java

最后确认它/etc/alternatives/java本身指向 java-7:
ls -l /etc/alternatives/java

update-alternatives 命令仅调整最后一个,并假定默认指向的/usr/bin/java那个又正确链接到/etc/alternatives/java

相关内容