Linux 自带的jdk是openjdk
,但是sun/oracle的jdk更加常用一些,据说bug也更少。所以下面就是卸载openjdk安装sun/oralce jdk的一个教程。
检查OpenJDK是否已经安装
rpm -q < rpm package name>
用来查询一个包是否被安装,而rpm -qa
则列出了所有被安装的rpm包
1 | $ rpm -qa | grep java |
检查OpenJDK版本
1 | $ java -version |
卸载Openjdk
用root用户登录终端,rpm -e --nodeps
表示强制卸载某个rpm包,因为采用rpm -e
删除时有时会出现... is needed by ...
的依赖提示而不能卸载这个包1
2
3$ rpm -e --nodeps java-1.7.0-openjdk-1.7.0.19-2.3.9.1.el6_4.x86_64
$ rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.61.1.11.11.el6_4.x86_64
$ rpm -e --nodeps tzdata-java-2013b-1.el6.noarch
下载并安装jdk-7u17-linux-x64.rpm
下载地址:http://pan.baidu.com/share/link?shareid=397488&uk=638583574,`rpm -ivh 为安装某个rpm包的命令,参数
ivh`各自的意义如下所示1
2
3-i, --install install package(s)
-v, --verbose provide more detailed output
-h, --hash print hash marks as package installs (good with -v)
而rpm -Uvh
则表示升级一个软件包
1 | $ cd /jdk1.7所在目录 |
配置环境变量
这是很关键的一步,jdk使用过程中绝大部分问题都跟环境变量的配置有关,需要配置的变量有JAVA_HOME
,PATH
和CLASSPATH
,其中JAVA_HOME
表示Java的安装目录,PATH
是为了让系统在任何路径下都可以识别出java的命令,CLASSPATH
则指定Java运行时查找class文件的路径,尤其需要注意CLASSPATH需要包含当前目录,也就是.
,而且还要包含工具类库tool.jar
;如果需要Swing包,还可以添加dt.jar
。所以上面这三个变量的最简配置如下所示:1
2
3
4
5$vi /etc/profile #在最后加入以下内容:
JAVA_HOME=/usr/java/jdk1.7.0_17
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/tools.jar
export JAVA_HOME PATH CLASSPATH
使环境变量立即生效1
$source /etc/profile
测试安装是否成功
依次输入java,java -version,javac
,看到输出信息即可,例如1
2
3
4# java -version
java version "1.7.0_17"
Java(TM) SE Runtime Environment (build 1.7.0_17-b02)
Java HotSpot(TM) 64-Bit Server VM (build 23.7-b01, mixed mode)