全部博文(89)
分类: Java
2008-05-09 01:11:19
Java 与Linux
Java 是使用最广泛的编程语言的之一,但是长期以来,由于协议问题,在Linux平台,Java一直显得有些格格不入。直到最近,Sun宣布Java 以GPL协议开源,开源社区一片沸腾,IBM却报怨应该把它交给Apache 来打理,真是几多欢喜几多愁。
Sun一直是开源的先驱力量,在早期的JDK中,就已经附带了Java 核心类库的源代码,一直到现在都是如此。虽然那时只是停留在只能看不能改的阶段,但这种做法为Java的普及铺平了道路。之后,微软.Net的兴起,IBM在Java企业市场上一家独大。这是一个Sun不愿意看到的结果,Sun发明了Java,却没有用它赚到钱。更可怕的是,IBM已经打算另外开发一个Java环境,在Apache 上另起炉灶。几乎在Sun宣布以GPL开放的Java的同时,这些不得不令Sun重新考虑Java的定位。在再三考虑之后,为了防止Java版本出现分裂,Sun选择了GPL协议。
Java开放了,但是要用上一个完全开放的JDK,并不是那么容易。由于涉及到多方专利和其它方面的一些原因,OpenJDK目前一些功能受到限制,还不能完全代替Sun 官方的JDK。
在Ubuntu上安装JDK
各个Linux发行版本对Java态度也不一样,就目前最流行的社区发行版本,而言,自带的Java 环境也不一样。
Ubuntu继承了Debian血统的开放性,又排除了Debian没有固定开发周期的坏毛病。Ubuntu发行版本包括大量的开源软件,它同时一些受限制的软件,甚至一些商业软件。在它的安装源中,有很多常用商业软件,这或许是它与其它公司合作的,一种商业运营模式。在最近的几个发行版本,Sun的JDK很早就已经包含在它的安装源,你可以通过它的软件包管理工具直接安装。
在Fedora上安装JDK
Fedora 一直坚持整个发行版本包含软件必须是彻头彻底的开源,在早期的Redhat 8和Redhat 9中就已经删除有争议的mp3功能支持。由于这种策略,Sun官方的JDK,是不可能出现在Fedora的安装源中。在Fedora的早期发行版本中,附带的是来自GNU的Java编译器。它与Sun的Java环境概念完全不一样,它试图将Java代码编译成系统二进制代码。Fedora 8 附带的JDK是IceTea项目的成果(Redhat的一个开源项目,是一个最新OpenJDK 7 加上GNU Classpath的混合体),对于企业开发来说,还是应该安装Sun 官方的JDK(或者是其它厂商提供的JDK,如IBM,Bea等),替换掉IceTea。令人欣慰的是,Fedora 9会使用OpenJDK 6(在OpenJDK 7发布前,Sun对开源社区的一种承诺,除了个别特性外,它与Sun官方的JDK已经差别不大)代替IceTea。
在Fedora中安装Java环境,最快捷的方法是使用的成果,通过这样的好处是你能够很好的解决系统java软件的依赖问题。
另外Sun官方网站也提供了一个rpm打包版本,它会自动解压,并调用系统的rpm进行安装。为了与你的系统兼容,你可以下载JPackage项目提供一个java-
通用的安装方法
你也可以下载Sun 官方解压版本,解压到系统某个位置(如/opt/jdk6),设置好JAVA_HOME环境变量,把JDK的bin路径加到系统的Path中。根据自己的需要,你可以将它写到系统全局配置文件(/etc/profile ,Fedora 中可以创建一个bash文件/etc/profile.d/java.sh)或是用户个人目录配置文件中(~/.bashrc或~/.base_profile)。
export
JAVA_HOME=/opt/jdk6
export
PATH=$PATH:$JAVA_HOME/bin
这种方法的一个弊端,就是你无法通过系统软件包管理工具进行维护。