为了试用 jdk11 的新功能,我将它安装到 /opt/ 并希望使用 update-alternatives 来使用它,如下所示:
sudo update-alternatives --install /etc/alternatives/java OpenJDK-11 /opt/jdk-11/bin/java 1102
返回:
update-alternatives: using /opt/jdk-11/bin/javac to provide /etc/alternatives/java (OpenJDK-11) in auto mode
但是,当我这样做时
$ sudo update-alternatives --config java
我没有看到我刚刚安装的jdk。相反,我收到警告和已经存在的选择:
update-alternatives: warning: /etc/alternatives/java has been changed (manually or by a script); switching to manual updates only
There are 2 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1101 auto mode
1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1101 manual mode
2 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 manual mode
警告是什么意思,为什么它实际上同时显示自动和手动模式条目?为什么我的jdk11不在里面?
我认为您的第一个命令是错误的;它应该是:
对于 jdk 的所有其他可执行文件也是如此。
怎么做
安装 jdk-11
首先将 jdk-11 安装在
/usr/lib/jvm
. 我们将openjdk-11+28-amd64
在这里使用创建一个 shell 脚本来自动更新替代方案
我称之为
jdk-11.sh
然后使
jdk-11.sh
可执行文件,并运行为新的 jdk-11 添加替代品
切换到这个 jdk-11
然后在
update-java-alternatives
我们需要一个
.openjdk-11+28.jinfo
在里面调用的帮助文件/usr/lib/jvm
然后运行
回滚到 ubuntu 包