在 Ubuntu 22.04 上安装 Java 更新替代方案:警告:

在 Ubuntu 22.04 上安装 Java 更新替代方案:警告:

昨天,我删除了 Windows 并在 8 年的 Acer 上安装了 Ubuntu 22.04。成功了。
我需要 JDK Java 11 来开发 Android Studio 和其他软件。

以下是我在新的 Ubuntu 上安装 Java 的步骤教程
下载:jdk-11.0.16_linux-x64_bin.tar.gz来自 Oracle 页面。
解压:tar -xvf jdk-11.0.16_linux-x64_bin.tar.gz
创建文件夹:sudo mkdir -p /usr/lib/jvm/jdk-11.0.16/
移动解压后的文件夹:sudo mv jdk-11.0.16/* /usr/lib/jvm/jdk-11.0.16/
设置备选方案:

sudo update-alternatives --install "/usr/bin/java/" "java" "/usr/lib/jvm/jdk-11.0.16/bin/java" 1010

有结果

update-alternatives: warning: forcing reinstallation of alternative /usr/lib/jvm/jdk-11.0.16/bin/java because link group java is broken
update-alternatives: warning: not replacing /usr/bin/java/ with a link

我却被困在这儿了。

命令的结果 sudo update-alternatives --config java为:

There is only one alternative in link group java (providing /usr/bin/java/): /usr/lib/jvm/jdk-11.0.16/bin/java
Nothing to configure.
update-alternatives: warning: forcing reinstallation of alternative /usr/lib/jvm/jdk-11.0.16/bin/java because link group java is broken
update-alternatives: warning: not replacing /usr/bin/java/ with a link

命令的结果sudo update-alternatives --list java是:

/usr/lib/jvm/jdk-11.0.16/bin/java

java --version

Command 'java' not found, but can be installed with:
sudo apt install openjdk-11-jre-headless  # version 11.0.15+10-0ubuntu0.22.04.1, or
sudo apt install default-jre              # version 2:1.11-72build2
sudo apt install openjdk-18-jre-headless  # version 18~36ea-1
sudo apt install openjdk-8-jre-headless   # version 8u312-b07-0ubuntu1
sudo apt install openjdk-17-jre-headless  # version 17.0.3+7-0ubuntu0.22.04.1

我访问、阅读并观看了不同的网页和 YouTube,但没有找到对问题的理解和解决方案。

有人能解释一下这个警告的含义并帮助解决吗?非常感谢!

答案1

就我的情况来说,当我还没有在 Ubuntu 上安装任何东西时,断开的链接组的警告中提到的update-alternatives,是由于缺少 JAVA_HOME 变量引起的。
我已经重新安装了 Ubuntu 操作系统,并按以下顺序安装 JDK 11:
下载:jdk-11.0.16_linux-x64_bin.tar.gz来自 Oracle 页面。
解压缩:tar -xvf jdk-11.0.16_linux-x64_bin.tar.gz
创建文件夹:sudo mkdir -p /usr/lib/jvm/jdk-11.0.16/
移动解压后的文件夹:sudo mv jdk-11.0.16/* /usr/lib/jvm/jdk-11.0.16/
在 /etc/environment 中设置 java var:PATH="...:/usr/lib/jvm/jdk-11.0.16/bin&
JAVA_HOME="/usr/lib/jvm/jdk-11.0.16"
要求 Ubuntu 接受新变量而不重新启动整个系统:
source /etc/environment
设置替代方案:
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk-11.0.16/bin/java" 0
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk-11.0.16/bin/javac" 0
sudo update-alternatives --set java /usr/lib/jvm/jdk-11.0.16/bin/java
sudo update-alternatives --set javac /usr/lib/jvm/jdk-11.0.16/bin/javac

结果为java -version

java version "11.0.16" 2022-07-19 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.16+11-LTS-199)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.16+11-LTS-199, mixed mode)

相关内容