![在 Ubuntu 22.04 上安装 Java 更新替代方案:警告:](https://linux22.com/image/1188499/%E5%9C%A8%20Ubuntu%2022.04%20%E4%B8%8A%E5%AE%89%E8%A3%85%20Java%20%E6%9B%B4%E6%96%B0%E6%9B%BF%E4%BB%A3%E6%96%B9%E6%A1%88%EF%BC%9A%E8%AD%A6%E5%91%8A%EF%BC%9A.png)
昨天,我删除了 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)