问题

最近需要验一下JDK的版本兼容性,找了一台JDK11的机器,改了一上JAVA_HOME,然后source /etc/profile后,发现版本没有改过来!?
查看了一下.bash_profile.bashrc都没有配置,奇怪了。
难道是/usr/bin中指定了?因为如果使用openJDK会从/usr/bin去指定java的路径,还是看一看还真是

java路径

ll查看一下这个软链指向哪里

软链接指向

想暴力删一下,但是万一改坏了就不好,还是温柔一点,使用 update-alternatives 命令

修改

使用 update-alternatives 命令修改

格式如下:

1
2
3
4
5
6
7
8
9
10
usage: alternatives --install <link> <name> <path> <priority>
[--initscript <service>]
[--family <family>]
[--slave <link> <name> <path>]*
alternatives --remove <name> <path>
alternatives --auto <name>
alternatives --config <name>
alternatives --display <name>
alternatives --set <name> <path>
alternatives --list

修改命令

1
sudo update-alternatives --install "/usr/bin/java" "java" "/home/java/JDK/jdk1.8.0_161" 1

再查看一下,正常了,这种方式,不需要删除重新软链接。

1
2
3
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)

如果不正常怎么搞

可以使用交互式修改

交互式修改

输入指定的数字,搞定。