ubuntu系统中,既安装了openjdk,又安装了jdk5,jdk6.
其中,openjdk是使用debian自动安装,安装在/usr/lib/jvm/java-6-openjdk中。
系统自动地将openjdk设为默认java命令环境。
ll /usr/bin/java
打印:
lrwxrwxrwx 1 root root 22 2011-09-09 17:36 /usr/bin/java -> /etc/alternatives/java*
ll /etc/alternatives/java
打印:
lrwxrwxrwx 1 root root 43 2011-09-09 17:36 /etc/alternatives/java -> /usr/lib/jvm/java-6-openjdk/jre/bin/java
而jdk1.5和jdk1.6是下载bin文件后安装的,在/home/wuekzhu/download/jdk1.5.0_22和/home/wuekzhu/download/jdk1.6.0_23目录下。
现在使用update-alternatives将系统的默认java环境变成jdk1.6
首先使用update-alternatives --config java,可以看到当前当前是使用openjdk的,
/etc/alternatives/java 是 link 到 /usr/lib/jvm/java-6-openjdk/jre/bin/java
然后,使用以下命令配置jdk1.6,实际上就是把jdk1.6的软链接替代openjdk的,当然update-alternatives会记录有哪些候选命令。
sudo update-alternatives --install /usr/bin/java java /home/wuekzhu/download/jdk1.6.0_23/bin/java 1888
这样之后,就ok了
$ update-alternatives --config java
//有 2 个候选项可用于替换 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 手动模式
现在,/usr/bin/java 已经指向我们的 jdk1.6 了:
ll /usr/bin/java
打印:
lrwxrwxrwx 1 root root 22 2011-09-09 17:36 /usr/bin/java -> /etc/alternatives/java*
ll /etc/alternatives/java
打印:
lrwxrwxrwx 1 root root 43 2011-09-09 17:36 /etc/alternatives/java -> /home/wuekzhu/download/jdk1.6.0_23/bin/java*
另外,/etc/profile中path的设置,可以选择覆盖或不覆盖/usr/bin/java命令。
如果我这样设置profile,那么会使用jdk1.5 :
#set java environment
JAVA_HOME=/xxx/xxxx/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=/xxx/xxxx/jdk1.5.0_22
CLASSPATH=.:$JAVA_HOME/lib.tools.jar
PATH=$PATH:$JAVA_HOME/bin