欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

update-alternatives命令实现ubuntu下jdk切换 博客分类: linux jdkubuntu 

程序员文章站 2024-03-18 17:37:46
...

说明:
如我系统已安装有java 1.6,还想要安装java 1.7,但我不想卸载java 1.6。就可以通过update-alternatives –config在多个java版本间进程切换。update-alternatives是用于在多个同类型命令中进行切换的一个脚本,在debian中可 以通过apt-get install dpkg来进行安装。

在说明update-alternatives的详细用法之前,先让我们看看系统中已有的例子。打开终端,执行下面的命令:
# ls -l /usr/bin/java
lrwxrwxrwx 1 root root 22 2011-03-12 15:20 /usr/bin/java -> /etc/alternatives/java

# ls -l /etc/alternatives/java
lrwxrwxrwx 1 root root 40 2011-03-12 15:20 /etc/alternatives/java -> /usr/lib/jvm/java-6-openjdk/jre/bin/java
java这个可执行命令实际是一个链接,指向了/etc/alternatives/java。而这个也是一个链接,指向了/usr/lib/jvm /java-6-openjdk/jre/bin/java,这才是最终的可执行文件。之所以建立这样两个链接,是为了方便脚本程序的编写和系统的管理。

语法:
暂空!!!

实例:
1. display参数列出一个命令的所有可选命令

# update-alternatives --display java

 
2. config参数用于给某个命令选择一个link值,相当于在可用值之中进行切换吧。

# update-alternatives --config java  //有 3 个候选项可用于替换 java (提供 /usr/bin/java)  选择路径优先级状态------------------------------------------------------------0/usr/lib/jvm/java-6-openjdk/jre/bin/java      1061自动模式*1/home/wuekzhu/download/jdk1.6.0_23/bin/java   1手动模式2/usr/lib/jvm/java-6-openjdk/jre/bin/java      1061手动模式

 
3. install参数用于添加一个命令的link值,相当于添加一个可用值,其中slave非常有用。

# update-alternatives –install /usr/bin/java java /usr/local/jre1.6.0_20/bin/javac 100  # update-alternatives –install /usr/bin/java java /usr/local/jre1.6.0_20/bin/javac 100 –slave /usr/bin/javac javac /usr/local/jre1.6.0_20/bin/javac  

 
4. remove参数用于删除一个命令的link值,其附带的slave也将一起删除。

# update-alternatives –remove java /usr/local/jre1.6.0_20/bin/java  

 
当然如果想让java能使用,还是得把java按照如下添加到环境变量去。
# vim /etc/profile //在最后添加以下内容
JAVA_HOME=/usr/local/jdk1.5.0_22
CLASSPATH=.:$JAVA_HOME/lib/tools.jar
PATH=$PATH: $JAVA_HOME/bin
export PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME CLASSPATH PATH
如果想通过update-alternatives在多个版本的java间切换,只需简单地用update-alternatives –config java,选择我们想要的java版本即可!

附录:
附录1./etc/profile中path的设置,可以选择覆盖或不覆盖/usr/bin/java命令。
如果我这样设置profile,那么会使用jdk1.5 :
#set java environment
JAVA_HOME=/home/wuekzhu/download/jdk1.5.0_22
CLASSPATH=.:$JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/bin:$PATH
如果我这样设置profile,那么会使用/usr/bin/java – > /etc/alternatives/java :
#set java environment
JAVA_HOME=/home/wuekzhu/download/jdk1.5.0_22
CLASSPATH=.:$JAVA_HOME/lib/tools.jar
PATH=$PATH: $JAVA_HOME/bin

相关标签: jdk ubuntu