在Fedora8上安装jdk

时间:2021-12-07 18:14:39

按:我们身处一个信息爆炸的年代,当有事不决时,打开搜索引擎瞬息间就能得到海量的答案。但是,这未必会让你的问题迎刃而解,因此很多“答案”会把你引向错误的方向,浪费你的时间。希望搜索引擎能有所改进,对明确的问题只给出唯一的标准答案就好了,因为错误的答案再多有什么用呢,经历过高考的都知道答不到点子上乱凑字数是无济于事的,希望谷歌百度的程序员们能好好想想。好了,下面进入正题。

任务,将jdk-7u25-linux-i586.rpm安装在Red Hat Linux Fedora 8机器上,并以它为新的JDK。

环境:Linux version 2.6.23.1-42.fc8,gcc version 4.1.2 20070925

第一步,去下面地址寻找并下载jdk-7u25-linux-i586.rpm。

http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

第二步,将dk-7u25-linux-i586.rpm用U盘拷贝到Fedora8所在机器上,Fedora8比较smart,U盘插上一会就认出来了,不像原来Linux7.2加载任何外联设备都要mount,拿走再unmount,特烦人特耽误事,于是将文件拷贝到某个目录下,我本地是/home/usrname。

第三步,在/home/usrname下执行rpm -ivh jdk-7u25-linux-i586.rpm,系统报error:Can't create transaction lock on /var/lib/rpm/_db.000,让人一头雾水。于是,换root用户执行rpm -ivh jdk-7u25-linux-i586.rpm试试,诶,这回顺利开始安装了。这报错信息怎么和用户权限没关系呢?看来Linux报错信息和DOS报错信息一样,凡是用C做底层的软件报错都一个尿性。完成后,新的JDK被安到了/usr/java下,你可以去查看查看。

第四步,执行java -version,显示build 1.7.0-b21字样,说明安装初步成功了。其实这个还不能算是一步,只是对前面步骤的检验。

但是,以上步骤还只是成功了一半,我被汗牛充栋的网文误导了不少时间后,才总结出下面正确的步骤。

第五步,用VI修改/etc/profile,在末尾处添加这样一段:
export JAVA_HOME=/usr/java/jdk1.7.0_25
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

这里相当于我们在Win系统中环境变量的走法。先是设置JAVA_HOME,再是CLASSPATH和PATH。可恨有些大站里面的网文,连这三个单词都搞出拼写错误。有些误导网文有潜在BUG,到后面就运行不正常了,需要注意。

第六步,完成后,这些变量不会立即生效,你可以reboot机器,这比较浪费时间,也不推荐。最好可以执行命令 #source profile,注意是在/etc目录下以root用户来执行,执行完这些变量就设置好了。

你可以分别执行echo $JAVA_HOME,echo $CLASSPATH,$echo $PATH这三个命令,以确认它们设置完了。

[root@localhost etc]# echo $JAVA_HOME
/usr/java/jdk1.7.0_25
[root@localhost etc]# echo $PATH
/usr/java/jdk1.7.0_25/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/java/jdk1.7.0_25/bin:/root/bin:/usr/java/jdk1.7.0_25/bin
[root@localhost etc]# echo $CLASSPATH
.:/usr/java/jdk1.7.0_25/lib/dt.jar:/usr/java/jdk1.7.0_25/lib/tools.jar

另外执行java -version的效果如下:

[root@localhost etc]# java -version
java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b15) 注意这里已经与第四步不同了。

第七步,用VI或其它文本编辑器做一个java类,里面输出一条文字,类似下面的类:

class Hello{
    public static void main(String[] args){
         System.out.println("Hello!World");
    }
}

第八步,用命令#javac Hello.java生成Hello.class,生产后用ls查看下。

第九步,用命令#java Hello,如果终端里输出Hello!World,那就说明类执行正确,表明JDK安装完全成功了。这一步才是JDK安装完全成功的标志!之前java -version ,java,javac的执行效果都不能作数的,有些书籍网文把它们的输出当JDK安装成功标志,这是很不对的。

 注意事项:

1.安装前需要检查系统是否已经安装了其它版本的JDK,可以参考以下流程检查:

(来自http://www.th7.cn/system/lin/201307/42216.shtml)

[root@localhost /]# java -version

java version "1.4.2"

gij (GNU libgcj) version 4.1.2 20080704 (Red Hat 4.1.2-51)

Copyright (C) 2006 Free Software Foundation, Inc.

This is free software; see the source for copying conditions. There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

查看自带的JDK的相关信息

[root@getlnx06 ~]# rpm -qa | grep gcj

libgcj-4.1.2-51.el5

java-1.4.2-gcj-compat-1.4.2.0-40jpp.115

libgcj-4.1.2-51.el5

卸载自带的JDK的信息

[root@localhost /]# rpm -e --nodeps java-1.4.2-gcj-compat-1.4.2.0-40jpp.115

2.无论是Win版本还是Linux版本的JDK,手工添加修改JAVA_HOME,CLASSPATH,PATH都是必须的。

3.JDK的安装是否成功,标志是以新的JDK编译执行JAVA类,而不是JAVA -version和弄和弄就行的。

好了,就到这里,如果上文有什么问题,请你留言。