Linux中的update-alternatives命令详解

2025-10-22 16:58:17

1、首先查看下本地java版本,使用java -version

mec@mac:~$ java -version

java version "1.6.0_45"Java(TM) SE Runtime Environment (build 1.6.0_45-b06)Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)

Linux中的update-alternatives命令详解

2、mec@mac:~$ which java      #which java命令查看java命令使用的可执行文件位置

/usr/bin/javamec@mac:~$ ll /usr/bin/java    

#查看命令的链接位置

lrwxrwxrwx 1 root root 22  3月  1 22:36 /usr/bin/java -> /etc/alternatives/java

Linux中的update-alternatives命令详解

3、mec@mac:~$ ll /etc/alternatives/java    #最后查看到java命令可执行文件的实际位置

lrwxrwxrwx 1 root root 39  4月 23 16:21 /etc/alternatives/java -> /usr/lib/jvm/java-6-oracle/jre/bin/java*

Linux中的update-alternatives命令详解

4、update-alternatives正如名字表达的意思一样,是可选择的更新

查看,这个命令会建立很软链接,当切换版本的时候,只需要更改软链接的指向。

sudo update-alternatives --display java

可以看出当前java命令只有一个软链接,指向/usr/lib/jvm/java-6-oracle/jre/bin/java,命令的模式是自动auto,这时候会根据优先级匹配,priority 1既是优先级。

Linux中的update-alternatives命令详解

5、列出使用java命令的列表,现在只有一个,指出了命令的所在位置

mec@mac:~$ sudo update-alternatives --list

java/usr/lib/jvm/java-6-oracle/jre/bin/java

Linux中的update-alternatives命令详解

1、现在开始配置,我下载的JDK8在/home/mec/Android/jdk1.8.0_73。下载这个在这里就不细讲了,你也可以配置~/.bashrc或是/etc/profile中的环境变量。

Linux中的update-alternatives命令详解

2、由sudo update-alternatives --list java我们上面查看只有

/usr/lib/jvm/java-6-oracle/jre/bin/java

现在使用

/usr/lib/jvm/java-6-oracle/jre/bin/java

sudo update-alternatives --install /usr/bin/java java /home/mec/Android/jdk1.8.0_73/bin/java 300

update-alternatives  --install link name path priority其中link为系统中功能相同软件的公共链接目录,比如/usr/bin/java(需绝对目录);name为命令链接符名称,如java path为你所要使用新命令、新软件的所在目录 priority为优先级,当命令链接已存在时,需高于当前值,因为当alternative为自动模式时,系统默认启用priority高的链接;# 整数 根据版本号设置的优先级(更改的优先级需要大于当前的)

Linux中的update-alternatives命令详解

3、现在使用sudo update-alternatives --list java查看下

发现多了一项

/home/mec/Android/jdk1.8.0_73/bin/java

/usr/lib/jvm/java-6-oracle/jre/bin/java

Linux中的update-alternatives命令详解

4、sudo update-alternatives --config java

There are 2 choices for the alternative java (providing /usr/bin/java).

*号代表我们正在使用的。选择1后查看Java版本

Linux中的update-alternatives命令详解

5、mec@mac:~/Android/jdk1.8.0_73$ sudo update-alternatives --remove java

/home/mec/Android/jdk1.8.0_73/bin/java    移除刚来配置的

mec@mac:~/Android/jdk1.8.0_73$ java -version   测试下版本,发现又切换回来了1.6

Linux中的update-alternatives命令详解

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢