我无法使用 update-alternatives 设置默认 java

我无法使用 update-alternatives 设置默认 java

我已经安装了三个版本的 Java。我尝试使用 设置默认选项update-alternatives。但是,它并没有更改默认值。我错过了什么?我知道一个来自 JRE,另外两个来自 JDK,但我认为它们都应该可以工作。我正在使用 Ubuntu 20.04。

$ echo 1 | 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-11-openjdk-amd64/bin/java   1111      auto mode
  1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java   1111      manual mode
  2            /usr/lib/jvm/jdk-14.0.1/bin/java              200       manual mode
* 3            /usr/lib/jvm/jre1.8.0_251/bin/java            100       manual mode
Press enter to keep the current choice[*], or type selection number: update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/java to provide /usr/bin/java (java) in manual mode

我检查了jre1.8版本是否正常:

$ ./jre1.8.0_251/bin/java -version
java version "1.8.0_251"
Java(TM) SE Runtime Environment (build 1.8.0_251-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.251-b08, mixed mode)

但是,sdk 的默认值仍然是 14。

$ java -version
java version "14.0.1" 2020-04-14
Java(TM) SE Runtime Environment (build 14.0.1+7)
Java HotSpot(TM) 64-Bit Server VM (build 14.0.1+7, mixed mode, sharing)

答案1

我认为,由于环境变量java14中路径的优先性$PATH,实际运行的不是/usr/lib/jvm/jdk-14.0.1/bin/java/usr/bin/java因此替代方案将不起作用。

请注意,这/usr/bin/java只是默认 java 二进制文件的符号链接(即快捷方式)。

解决方法是使用bash 别名java要映射到的功能/usr/lib/jvm/java-11-openjdk-amd64/bin/java

alias java="/usr/lib/jvm/java-11-openjdk-amd64/bin/java"

您可以将其添加到您的~/.bashrc文件中。

相关内容