最后更新:2008年6月28日
在
Linux 下安装JDK 一文中已经简单的介绍了linux 的 java 知识和 JDK 的安装。这里再就我的使用情况下,针对 Fedora 9 上的Java 的使用经验作进一步的说明。
安装Sun JDK
千呼万唤始出来,从Sun宣布 Java开源开始,经过长达两年时间整理,现在终于宣布 Java 已经彻底开源,但有很小的一部分代码可能由于专利可能要重写。
Fedora 9 自带的 OpenJDK 并不是完全来自
OpenJDK项目 。它来自Redhat 的开源项目
IcedTea 项目的成果 ,它是OpenJDK 和 GNU Classpath的混合物。
实际使用中我并不打算使用它,我还是愿意使用Sun官方的JDK。
从
Sun Java 官方网站 下载最新的JDK 6 ,我使用的是最新的JDK 6 update 10 beta,它提供了很多
新特性 ,这将是第一个提供 Consumer JRE 的版本。
注意请下载 rpm版本,文件名为jdk-6u10-beta-linux-i586-rpm.bin。
切换到root用户,或者用sudo取得root 超级用户权限。
首先保证文件可以执行,添加执行权限。
[hantsy@localhost Download]$chmod a+rx jdk-6u10-beta-linux-i586-rpm.bin
开始安装。
[hantsy@localhost Download]$sudo ./jdk-6u10-beta-linux-i586-rpm.bin
按space 键阅读协议,到最后一页。输入yes,同意协议,开始安装。
文件会默认安装在/usr/java 目录下面,这是安装文件自动创建的目录。
[hantsy@localhost java]$ ls -al
total 1
drwxr-xr-x 3 root root 128 2008-06-13 10:14 .
drwxr-xr-x 14 root root 360 2008-05-29 18:17 ..
lrwxrwxrwx 1 root root 16 2008-06-13 10:14 default -> /usr/java/latest
drwxr-xr-x 9 root root 504 2008-06-13 10:14 jdk1.6.0_10
lrwxrwxrwx 1 root root 21 2008-06-13 10:14 latest -> /usr/java/jdk1.6.0_10
从
JPackage 网站下载
java-1.6.0-sun-compat 包,这是一个虚包,提供一些虚拟包,和一些链接指向安装的jdk目录,主要可以为系统包管理系统解决java程序依赖问题。
假设你已经准备好了
打包环境 ,就可以重新为最新的JDK打一个包。
安装源文件rpm。
[hantsy@localhost ~]$rpm -ivh java-1.6.0-sun-compat-1.6.0.06-1jpp.src.rpm
注意,这里是使用当前
普通用户安装。
进入SPECS文件目录。
[hantsy@localhost ~]$ cd rpmbuild/SPECS/
编辑java-1.6.0-sun-compat.spec,将buildver定义改成10,upstreamrel改成beta。
[hantsy@localhost ~]$ gedit java-1.6.0-sun-compat.spec
%define buildver 10
%define upstreamrel beta
重新打包。
[hantsy@localhost ~]$sudo rpmbuild -ba java-1.6.0-sun-compat.spec
打包结束后,rpm包会放在 ~/rpmbuild/RPMS下面。
转到~/rpmbuild/RPMS/i586 进入安装。
[hantsy@localhost ~]$sudo rpm -Uvh java-1.6.0-sun-compat-1.6.0.10-1.fc9.i586.rpm
测试是否已经使用新安装的Sun JDK ,打开terminal 输入
java -version 进行检测。
[hantsy@localhost ~]$java -version
应该看到的显示结果为:
[hantsy@localhost ~]$ java -version
java version "1.6.0_10-beta"
Java(TM) SE Runtime Environment (build 1.6.0_10-beta-b25)
Java HotSpot(TM) Client VM (build 11.0-b12, mixed mode, sharing)
如果不是期望的jdk版本,可能是系统中还有其他java环境。
默认情况下,Fedora 9安装源包含了openjdk 和gcj,你有两种选择解决这个问题。
1)你可以删除其它java环境,
[hantsy@localhost ~]$ sudo yum remove java-1.6.0-openjdk java-1.5.0-gcj
或者2)切换到所想要的Sun JDK。
[hantsy@localhost ~]$ sudo /usr/sbin/update-alternatives --config java
这时你应该看到可以一种以上可选条目,选择你新安装的java 环境。
再次使用
java -version命令行进行测试。
设置JAVA_HOME 环境变量,虽然大部分情况是没有必要的,多数程序都能够根据系统PATH中的 java 自动查找到相应的java安装位置,但少数java程序仍然需要指定JAVA_HOME。
为了方便,我写了一个shell文件,让它在系统启动时自动执行。
在/etc/profile.d/下创建一个名为java.sh的文件,内容如下。
export JAVA_HOME=/usr/java/default
export ANT_HOME=/opt/build/ant
export M2_HOME=/opt/build/maven
export PATH=$PATH:$ANT_HOME/bin:$M2_HOME/bin
保证文件可以执行,必要添加执行权限。
[hantsy@localhost ~]$ sudo chmod a+x /etc/profile.d/java.sh
你可以已经注意到,文件包含几行其他几行与JDK不相干的内容。这里也同时设置了Apache ant , Apache maven 两个最常用的 java 构建工具的环境变量(我的日常使用中离不开它们),并将其命令行工具路径添加到系统的 PATH 中。
从terminal 命令行执行
[hantsy@localhost ~]$ sudo sh /etc/profile.d/java.sh
使其立即生效。
用命令行
echo $JAVA_HOME 进行测试。
应该会得到类似这样的结果。
[hantsy@localhost ~]$ echo $JAVA_HOME
/usr/java/default