如何设置默认Java版本


8

我一直在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?


看看Java
Mitch

@米奇感谢,但它只是说在使用update-alternatives,我已经尝试过
多纳尔

没有你sudo apt-get install oracle-java7-set-default重启
Eliran Malka 2013年

1
仅供参考,11.10是生命的尽头。
托马斯·沃德

Answers:


4

按照这个答案:如何设置默认的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

3

您也需要设置javac

sudo update-alternatives --config javac

1

我有同样的问题。我安装了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"

0

输入标识所需路径的数字,然后按Enter。在这种情况下,请插入1。

最后,尝试测试版本 java -version


我需要版本7,而不是6。update-alternatives指示我已经在使用版本7的输出,但java -version表明我仍在使用版本6。
Dónal13年

0

我猜你的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


0

我尝试了上面列出的几乎所有方法,但是仍然发现java -version 打印了错误的版本,同时ls -al /etc/alternatives/java已经指出了正确的方法。

所以我运行: which java 发现结果表明我在使用Java /usr/local/jdk_xxx/bin/java,然后删除了该文件夹并重新启动了终端。现在,java运行良好。

希望它能帮助别人。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.