2012-10-08 44 views
30

我在Linux Debian(Squeeze)上安装Apache Solr。我被指示安装sun-java jdk 1st。然后被告知我应该使用命令sudo update-alternatives --config java来确保特定的java(sun-java)是默认运行时。然而,当我运行这个命令,我得到:如何使用命令update-alternatives --config java

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

    Selection Path          Priority Status 
------------------------------------------------------------ 
* 0   /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061  auto mode 
    1   /usr/bin/gij-4.4       1044  manual mode 
    2   /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061  manual mode 
    3   /usr/lib/jvm/java-6-sun/jre/bin/java  63  manual mode 

Press enter to keep the current choice[*], or type selection number: 

所以我应该选择有阳光Java作为默认的运行哪个号码? 另外,自动和手动模式到底意味着什么?如果我选择上面的3并运行update-alternative命令,我会收到与上面相同的输出,除了*现在位于3之前,似乎没有任何变化,尽管它仍然读取手动模式。

有没有办法确认我所做的是正确的?

回答

26

如果您在键入“java -version”后选择选项,您会注意到一个很大的变化。因此,如果您运行update-alternatives --config java并选择选项3,则将使用Sun实施。
此外,关于auto VS manual mode,进行选择应该把它拿出来的auto modethis page指出:

当使用--config选项,方案将列出所有 选择为链路组,其中给定名称是主链接。然后您将提示您 哪些选项用于链接 组。一旦您做出更改,链接组将不再位于 auto mode。您需要使用--auto选项才能将 返回到自动状态。

而且我相信auto mode是在您安装第一个/只有JRE/JDK时设置的。

3

有迹象表明,需要链接许多其他二进制文件descibed所以我认为这是多大最好试试sudo update-alternatives --all之类的东西,并选择除javajavac以外的其他所有选项的正确选项。

6

update-alternatives在这种情况下有问题,因为它迫使您根据JDK更新所有元素。

为此特定目的,包java-common包含一个名为update-java-alternatives的工具。

使用它很简单。首先列出JDK安装可用的机器上:

[email protected]:~# update-java-alternatives -l 
java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64 
java-1.8.0-openjdk-amd64 1069 /usr/lib/jvm/java-1.8.0-openjdk-amd64 

然后拿起一个:

[email protected]:~# update-java-alternatives -s java-1.7.0-openjdk-amd64 
0

假设一个人在/opt/java/jdk1.8安装了JDK。0_144然后:

  1. 安装替代用于javac

须藤更新替代品--install的/ usr /斌/ javac的javac的/opt/java/jdk1.8.0_144/bin/javac 1

  • 检查/更新的替代配置:
  • 须藤更新替代品--config javac的

    如果Javac只有一个选项,您将收到一条消息,否则请选择新的jdk选项。

    要检查一切都设置正确,则:

    其中的javac 的/ usr /斌/ javac的

    LS -l的/ usr /斌/ javac的 lrwxrwxrwx 1根根23 09月04日17时10// etc/alternatives/javac - >/etc/alternatives/javac

    ls -l/etc/alternatives/javac lrwxrwxrwx 1 root root 32 Sep 4 17:10/etc/alternatives/javac - >/opt/java/jdk1.8.0_144/bin/javac

    最后

    的javac -version 的javac 1.8.0_144

    耶!

    根据需要重复使用java,keytool,jar等