使用alternatives,自由切换linux的jdk版本

以前自己装上jdk之后,都是把java,javac做成链接替换掉/usr/bin/里面的gij的java和javac。但是这么做一直感觉都不是很“正规”,像是旁门左道。

前一阵子在网上看到有人说可以用一个叫做alternativs的工具来实现linux下软件版本的迁移,就决定使用alternatives来把jdk从gij迁移至我新装的jdk6.0。

alternatives在/usr/sbin目录下

首先需要把新安装的jdk添加到alternatives:

[root@djn-laptop sbin]# ./alternatives --install /usr/bin/java java /usr/share/jdk1.6.0_02/bin/java 300[root@djn-laptop sbin]# ./alternatives --install /usr/bin/javac javac /usr/share/jdk1.6.0_02/bin/javac 300

然后使用--display选项可以查看目前系统可用的JDK:

[root@djn-laptopsbin]#./alternatives--displayjava

java-状态是手工。

链接目前指向/usr/share/jdk1.6.0_02/bin/java

/usr/lib/jvm/jre-1.4.2-gcj/bin/java-优先度1420

从keytool:/usr/lib/jvm/jre-1.4.2-gcj/bin/keytool

从rmiregistry:/usr/lib/jvm/jre-1.4.2-gcj/bin/rmiregistry

从jre_exports:/usr/lib/jvm-exports/jre-1.4.2-gcj

从jre:/usr/lib/jvm/jre-1.4.2-gcj

/usr/share/jdk1.6.0_02/bin/java-优先度300

从keytool:(null)

从rmiregistry:(null)

从jre_exports:(null)

从jre:(null)

当前“最佳”版本是/usr/lib/jvm/jre-1.4.2-gcj/bin/java。

[root@djn-laptopsbin]#./alternatives--displayjavac

javac-状态是手工。

链接目前指向/usr/share/jdk1.6.0_02/bin/javac

/usr/lib/jvm/java-1.4.2-gcj/bin/javac-优先度1420

从appletviewer:/usr/lib/jvm/java-1.4.2-gcj/bin/appletviewer

从jar:/usr/lib/jvm/java-1.4.2-gcj/bin/jar

从jarsigner:/usr/lib/jvm/java-1.4.2-gcj/bin/jarsigner

从javadoc:/usr/lib/jvm/java-1.4.2-gcj/bin/javadoc

从javah:/usr/lib/jvm/java-1.4.2-gcj/bin/javah

从rmic:/usr/lib/jvm/java-1.4.2-gcj/bin/rmic

从java_sdk_exports:/usr/lib/jvm-exports/java-1.4.2-gcj

从java_sdk:/usr/lib/jvm/java-1.4.2-gcj

/usr/share/jdk1.6.0_02/bin/javac-优先度300

从appletviewer:(null)

从jar:(null)

从jarsigner:(null)

从javadoc:(null)

从javah:(null)

从rmic:(null)

从java_sdk_exports:(null)

从java_sdk:(null)

当前“最佳”版本是/usr/lib/jvm/java-1.4.2-gcj/bin/javac。

确认无误后,就可以使用--config参数来选择想用的JDK

了:

[root@djn-laptopsbin]#./alternatives--configjava

共有2个程序提供“java”。

选择命令

-----------------------------------------------

*1/usr/lib/jvm/jre-1.4.2-gcj/bin/java

+2/usr/share/jdk1.6.0_02/bin/java

按Enter来保存当前选择[+],或键入选择号码:

[root@djn-laptopsbin]#./alternatives--configjavac

共有2个程序提供“javac”。

选择命令

-----------------------------------------------

*1/usr/lib/jvm/java-1.4.2-gcj/bin/javac

+2/usr/share/jdk1.6.0_02/bin/javac

按Enter来保存当前选择[+],或键入选择号码:

输入需要使用的JDK的编号就可以了。我的机器当然是选择第二项了。