|
|
第 1 帖 | |
|
|
标题: 使用alternative管理多个版本的JDK 无论RHEL还是Fedora,默认都是安装的gcjlib和gcj,许多时候我们需要配置其它的JDK来满足我们的应用,本文以RHEL 5为例,介绍如何使用alternative来管理多个版本的JDK。其实理解原理后,我们也可以用alternative来管理多个版本的GCC、Tomcat诸如此类的。
本文将以Sun JDK 1.4, 1.5, 1.6为例来配置。Sun的JDK默认安装在/usr/java目录下,IBM的JDK默认安装在/opt目录下。(BEA的JDK JRockit也是一个不错的选择,另外还有开源的Blackdown JDK,可惜目前似乎停止了项目,只有1.4的JDK。)
__________________
我是用双手打天下的程序员。 |
|
|
|
|
|
|
|
第 2 帖 | |
|
|
配置完后只需要执行
alternative --config java alternative --config javac 即可选择你希望的JDK版本, |
|
|
|
|
|
|
|
第 3 帖 | |
|
|
alternative的原理是根据配置文件,修改一系列的链接来完成不同版本之间的“切换”的。感兴趣的话可以查看alternative的相关文档,本着实用的原则,这就不浪费口水了。
RHEL和Fedora的alternative配置文件存放在/var/lib/alternatives目录下。(SUSE的配置文件存放在/var/lib/rpm/alternatives目录下,Debain的配置文件好象是存放在/var/lib/dpkg/alternatives目录下,对不起,没有用过Debain。) 我们先来看看alternative配置文件的结构。 |
|
|
|
|
|
|
|
第 4 帖 | |
|
|
真@!#$$%^扫兴,上传不了图片了,只好删掉几个原来的附件。
|
|
|
|
|
|
|
|
第 5 帖 | |
|
|
第1行默认是auto,修改后会变成manual。第2行是链接的位置。
后面每2行是一组,先是工具链的名字,然后是链接的位置。 可以看出偶数行都是链接的位置,直到一个空行。 空行后是主链接的目标(也就是alternative管理的这个配置是什么),下一行是主链批的优先级(一般用版本号),以后的每1行都是链接的目标。 |
|
|
|
|
|
|
|
第 6 帖 | |
|
|
再来看看修改后的配置文件,记得数字的版本号前一行是主链批的目标。后面是工具链的目标。数量要匹配。
|
|
|
|
|
|
|
|
第 7 帖 | |
|
|
附件中是java和javac的alternative的配置文件,解开自己再开开。
|
|
|
|
|
|
|
|
第 8 帖 | |
|
|
最后在配置一下环境变量。有很多方法,我一般喜欢改写/etc/profile,这里的例子是在bash下仅对当前的环境起作用的设置。
export JRE_HOME=/usr/lib/jvm/jre export JAVA_HOME=/usr/lib/jvm/java 正确的使用alternative来管理多个版本的JDK,就不会出现使用Sun的JVM却用着gcjlib这样可能导致一些不可预测的错误。 |
|
|
|
|
|
|
|
第 9 帖 | |
|
|
alternative让我郁闷了很久阿~~~
__________________
http://hi.baidu.com/yk103 |
|
|
|
|
|
|
|
第 10 帖 | |
|
|
还用什么全局变量?
win32和Linux统一的方法:-vm 加上JDK路径/java |
|
|
|
|
|
|
|
第 11 帖 | |
|
|
目前流行的linux 版本都已经自带了 OpenJDK 6 与 SUN 官方的 JDK 差别已经不是很大了,已经直接可以用于商业开发了。
如果想使用 SUN JDK ,可以使用 jpackages.org 的源,或者使用它提供的src.rpm重新打包 SUN JDK ,使其符合系统的打包规则(当然也是符合alternatives)。 http://blog.chinaunix.net/u/1096/showart_681599.html http://blog.chinaunix.net/u/1096/showart_1009044.html
__________________
Spring Live 中文版发布 Blog:http://hantsy.cublog.cn Gmail/Gtalk:hantsy@gmail.com |
|
|
|
|
|
|
|
第 12 帖 | |
|
|
不过我用ubuntu的时候,总是喜欢删掉openjdk,然后装上sunjdk,呵呵,习惯的力量啊!
|
|
|
|
|
|