我已经安装了三个版本的 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
文件中。