update-alternatives:更新 JDK7 时出现“替代路径不存在”问题

update-alternatives:更新 JDK7 时出现“替代路径不存在”问题

我决定将我的 JDK7 更新到最新版本这里

已下载并/usr/lib/jvm像往常一样提取了与我的体系结构对应的 x64 tag.gz 存档。之前所有以前的 Java 版本都是以相同的方式安装的。但在为和设置新的替代方案之前java,我使用以下命令删除了所有现有替代方案:javacjavaws

sudo update-alternatives --remove-all java
sudo update-alternatives --remove-all javac
sudo update-alternatives --remove-all javaws

现在,当我尝试安装新的替代方案时,我收到以下信息:

sudo update-alternatives --install /usr/lib/jvm/jdk1.7.0_13/bin/java java /usr/bin/java 1
update-alternatives: error: alternative path /usr/bin/java doesn't exist.

当然,/usr/bin/java不存在,但/usr/bin确实存在?这有什么问题,我该如何修复它?

答案1

这都是我的错!:)

我混淆了 的参数update-alternatives。正确的命令行应该是:

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk/bin/java 1

答案2

由于您正在从之前手动删除的 Java 版本进行更新,因此您必须执行以下命令两次。第一次执行时会收到错误消息,第二次执行时会成功。

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

来源:简易Linux项目

答案3

Oracle 已经让 Java 安装变得非常简单,并且希望未来也能如此。你可以从以下网址下载最新的 Debain:甲骨文.运行以下命令进行安装:

1. sudo apt install ./jdk-17_linux-x64_bin.deb
2. sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-17/bin/java 2

注意:- 运行存储 .deb 文件的命令 1,jdk 版本可能不同。同样,对于命令 2,在输入命令时使用 tab 键,对于第二个参数,即 /usr/lib/jvm/jdk-,然后输入下载的版本,在我的情况下是 17。

如果已安装旧版本的 Java(<17),请访问Linux 崛起并运行以下命令:

1. sudo add-apt-repository ppa:linuxuprising/java
2. sudo apt update

3. sudo -i

4. echo "deb http://ppa.launchpad.net/linuxuprising/java/ubuntu focal main" | tee /etc/apt/sources.list.d/linuxuprising-java.list

5. apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 73C3DB2A

6. apt-get update
7. exit

8. sudo apt install oracle-java17-installer --install-recommends
9. java -version

输出:
java 版本“17.0.1”2021-10-19 LTS
Java(TM) SE 运行时环境(版本 17.0.1+12-LTS-39)
Java HotSpot(TM) 64 位服务器 VM(版本 17.0.1+12-LTS-39,混合模式,共享)

相关内容