[Ubuntu 更换java版本]警告: 链接组 java 已损坏,故强制重新安装候选项 的解决方案

安装好了openjdk8和openjdk11之后,使用命令 sudo update-alternatives --config java 更换版本时,出现错误

update-alternatives: 使用 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 来在手动模式中提供 /usr/bin/java (java)
update-alternatives: 警告: 将不会把 /usr/bin/java 替换为链接

我的解决方案是这样的:

  1. 第一个告警提及了/usr/bin/java,那我们就进入/usr/bin 目录中查看
tina-XPS-13-9360 :: /usr/bin » cd /usr/bin
tina-XPS-13-9360 :: /usr/bin » ls -l | grep java
drwxr-xr-x 3 root root        4096 2月  25 17:36 java
lrwxrwxrwx 1 root root          23 2月  25 18:06 javac -> /etc/alternatives/javac
lrwxrwxrwx 1 root root          25 2月  25 18:06 javadoc -> /etc/alternatives/javadoc
lrwxrwxrwx 1 root root          23 2月  25 18:16 javah -> /etc/alternatives/javah
lrwxrwxrwx 1 root root          23 2月  25 18:06 javap -> /etc/alternatives/javap

可以看到,除了java之外的其他java目录都有软链接,这大概就是第一条警告说的软链接损坏。
分析了一下,可能是我之前手动安装过jdk导致的。

如果你在这一步的时候没有java文件夹,可以跳过第二步~!

  1. 我的做法是,将/usr/bin/java 重命名,再重新加软链接,我不确定这个文件夹是不是我之前自己下载jdk的时候的目录,还是留一下吧
tina-XPS-13-9360 :: /usr/bin » sudo mv java javabackup
tina-XPS-13-9360 :: /usr/bin » ls -li|grep java      
5650222 drwxr-xr-x 3 root root        4096 3月  17 14:58 javabackup
5514299 lrwxrwxrwx 1 root root          23 2月  25 18:06 javac -> /etc/alternatives/javac
5514300 lrwxrwxrwx 1 root root          25 2月  25 18:06 javadoc -> /etc/alternatives/javadoc
5514330 lrwxrwxrwx 1 root root          23 2月  25 18:16 javah -> /etc/alternatives/javah
5514301 lrwxrwxrwx 1 root root          23 2月  25 18:06 javap -> /etc/alternatives/javap
  1. 按照其他文件夹的规律,在确认/etc/alternatives/java存在的情况下,我们将/etc/alternatives/java 设置为 /usr/bin/java 的软链接
tina-XPS-13-9360 :: /usr/bin » sudo ln -s /etc/alternatives/java /usr/bin/java 
tina-XPS-13-9360 :: /usr/bin » ls -li|grep java                               
5516926 lrwxrwxrwx 1 root root          22 3月  17 15:05 java -> /etc/alternatives/java
5650222 drwxr-xr-x 3 root root        4096 3月  17 14:58 javabackup
5514299 lrwxrwxrwx 1 root root          23 2月  25 18:06 javac -> /etc/alternatives/javac
5514300 lrwxrwxrwx 1 root root          25 2月  25 18:06 javadoc -> /etc/alternatives/javadoc
5514330 lrwxrwxrwx 1 root root          23 2月  25 18:16 javah -> /etc/alternatives/javah
5514301 lrwxrwxrwx 1 root root          23 2月  25 18:06 javap -> /etc/alternatives/javap
  1. 可以看到软链接已经设置成功了,更换java版本试试看
tina-XPS-13-9360 :: /usr/bin » sudo update-alternatives --config java    
有 2 个候选项可用于替换 java (提供 /usr/bin/java)。

  选择       路径                                          优先级  状态
------------------------------------------------------------
  0            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1111      自动模式
* 1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1111      手动模式
  2            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      手动模式

要维持当前值[*]请按<回车键>,或者键入选择的编号:2       
update-alternatives: 使用 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 来在手动模式中提供 /usr/bin/java (java)

tina-XPS-13-9360 :: /usr/bin » java -version
openjdk version "1.8.0_282"
OpenJDK Runtime Environment (build 1.8.0_282-8u282-b08-0ubuntu1~20.04-b08)
OpenJDK 64-Bit Server VM (build 25.282-b08, mixed mode)


完美!

猜你喜欢

转载自blog.csdn.net/ptyp222/article/details/114931775
今日推荐