如何使用命令 update-alternatives --config java

2022-08-31 10:06:19

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

那么我应该选择哪个数字来将 sun-java 作为默认运行时呢?另外,自动和手动模式究竟意味着什么?如果我选择上面的3并运行update-alternative命令,我收到与上面相同的输出,除了*现在在3的前面之外,似乎没有任何变化,尽管它仍然读取手动模式。

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


答案 1

如果在选择选项后键入“java -version”,您会注意到很大的变化。因此,如果运行并选择选项 ,则将使用 Sun 实现。
另外,关于 vs ,进行选择应根据此页面将其删除,并指出:update-alternatives --config java3automanual modeauto mode

使用该选项时,备选项将列出给定名称为主链接的链接组的所有选项。然后,系统将提示您为链接组使用哪些选项。进行更改后,链接组将不再位于 中。您需要使用该选项才能返回到自动状态。--configauto mode--auto

我相信当你安装第一个/唯一的JRE / JDK时设置。auto mode


答案 2

假设一个人已经安装了JDK,那么:/opt/java/jdk1.8.0_144

  1. 安装 javac 的替代产品

    $ sudo update-alternatives --install /usr/bin/javac javac /opt/java/jdk1.8.0_144/bin/javac 1
    
  2. 检查/更新备选方案配置:

    $ sudo update-alternatives --config javac
    

如果只有一个替代方案,您将收到一条消息,说明如此,否则请选择新JDK的选项。javac

要检查所有内容是否设置正确,请执行以下操作:

$ which javac
/usr/bin/javac

$ ls -l /usr/bin/javac
lrwxrwxrwx 1 root root 23 Sep  4 17:10 /usr/bin/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等重复。


推荐