sudo update-alternatives选项怎么清楚

发布网友

我来回答

1个回答

热心网友

看已有的JAVA版本
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) -Bit Server VM (build 20.45-b01, mixed mode)

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

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*

4
update-alternatives正如名字表达的意思一样,是可选择的更新
查看,这个命令会建立很软链接,当切换版本的时候,只需要更改软链接的指向。
sudo update-alternatives --display java
可以看出当前java命令只有一个软链接,指向/usr/lib/jvm/java-6-oracle/jre/bin/java,命令的模式是自动auto,这时候会根据优先级匹配,priority 1既是优先级。

5
列出使用java命令的列表,现在只有一个,指出了命令的所在位置
mec@mac:~$ sudo update-alternatives --list
java/usr/lib/jvm/java-6-oracle/jre/bin/java

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

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高的链接;# 整数 根据版本号设置的优先级(更改的优先级需要大于当前的)

3
现在使用sudo update-alternatives --list java查看下
发现多了一项
/home/mec/Android/jdk1.8.0_73/bin/java
/usr/lib/jvm/java-6-oracle/jre/bin/java

4
sudo update-alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java).
*号代表我们正在使用的。选择1后查看Java版本

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

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com