Linux中的update-alternatives命令详解听语音
查看已有的JAVA版本
-
首先查看下本地java版本,使用java -version
[email protected]:~$ 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)
-
[email protected]:~$ which java #which java命令查看java命令使用的可执行文件位置
/usr/bin/[email protected]:~$ ll /usr/bin/java
#查看命令的链接位置
lrwxrwxrwx 1 root root 22 3月 1 22:36 /usr/bin/java -> /etc/alternatives/java
-
[email protected]:~$ 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*
-
update-alternatives正如名字表达的意思一样,是可选择的更新
查看,这个命令会建立很软链接,当切换版本的时候,只需要更改软链接的指向。
sudo update-alternatives --display java
可以看出当前java命令只有一个软链接,指向/usr/lib/jvm/java-6-oracle/jre/bin/java,命令的模式是自动auto,这时候会根据优先级匹配,priority 1既是优先级。
-
列出使用java命令的列表,现在只有一个,指出了命令的所在位置
[email protected]:~$ sudo update-alternatives --list
java/usr/lib/jvm/java-6-oracle/jre/bin/java
END
配置JAVA版本
-
现在开始配置,我下载的JDK8在/home/mec/Android/jdk1.8.0_73。下载这个在这里就不细讲了,你也可以配置~/.bashrc或是/etc/profile中的环境变量。
-
由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高的链接;# 整数 根据版本号设置的优先级(更改的优先级需要大于当前的)
-
现在使用sudo update-alternatives --list java查看下
发现多了一项
/home/mec/Android/jdk1.8.0_73/bin/java
/usr/lib/jvm/java-6-oracle/jre/bin/java
-
sudo update-alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java).
*号代表我们正在使用的。选择1后查看Java版本
-
[email protected]:~/Android/jdk1.8.0_73$ sudo update-alternatives --remove java
/home/mec/Android/jdk1.8.0_73/bin/java 移除刚来配置的
[email protected]:~/Android/jdk1.8.0_73$ java -version 测试下版本,发现又切换回来了1.6
END
update-alternatives --install /usr/bin/java java /usr/local/jdk1.8.0_151/bin/java 1100
update-alternatives --install /usr/bin/javac javac /usr/local/jdk1.8.0_151/bin/javac 1100
其中/usr/local/jdk1.8.0_151/换成你自己的jdk的路径