update-java-alternatives jinfo 文件不存在

Max*_*ler 5 java openjdk apt-cache update-alternatives

我正在尝试学习如何快速更改我的系统使用的 Java 版本,如本文所述:https : //aboullaite.me/switching-between-java-versions-on-ubuntu-linux/ 我使用过 apt-安装 openjdk-8-jdk,当我运行 sudo update-alternatives --config java 时,它看起来像这样:

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
Run Code Online (Sandbox Code Playgroud)

我正在尝试创建一个可以在版本之间切换的脚本,如文章中所述。(这是文章中的脚本:

sudo update-java-alternatives -s java-8-oracle
export JAVA_HOME=/usr/lib/jvm/java-8-oracle/
export PATH=$PATH:$JAVA_HOME
Run Code Online (Sandbox Code Playgroud)

但是当我尝试时,会发生这种情况:

sudo update-java-alternatives -s java-8-openjdk-amd64
update-java-alternatives: file does not exist: /usr/lib/jvm/.java-8-openjdk-amd64.jinfo
Run Code Online (Sandbox Code Playgroud)

如何在没有错误的情况下更新 java-alternatives?我应该跳过那条线吗?

小智 2

第一次运行命令:

sudo update-alternatives --get-selections | grep "/bin/jinfo"
Run Code Online (Sandbox Code Playgroud)

理想情况下,该文件应该存在。

其次,检查/usr/lib/jvm下的文件。在其中执行操作ls -la,您必须看到如下链接:

lrwxrwxrwx   1 root root    20 Nov  9 10:37 java-1.8.0-openjdk-amd64 -> java-8-openjdk-amd64
Run Code Online (Sandbox Code Playgroud)

使用它来运行替代命令:

sudo update-java-alternatives -s java-1.8.0-openjdk-amd64


小智 0

解决上述问题的解决方法

sudo update-java-alternatives -s java-1.8.0-openjdk-amd64
Run Code Online (Sandbox Code Playgroud)