Linux下安装sun/oracle的jdk

Linux 自带的jdk是openjdk,但是sun/oracle的jdk更加常用一些,据说bug也更少。所以下面就是卸载openjdk安装sun/oralce jdk的一个教程。

检查OpenJDK是否已经安装

rpm -q < rpm package name> 用来查询一个包是否被安装,而rpm -qa则列出了所有被安装的rpm包

1
2
3
4
$ rpm -qa | grep java
tzdata-java-2013b-1.el6.noarch
java-1.6.0-openjdk-1.6.0.0-1.61.1.11.11.el6_4.x86_64
java-1.7.0-openjdk-1.7.0.19-2.3.9.1.el6_4.x86_64

检查OpenJDK版本

1
2
3
4
$ java -version
java version "1.7.0_19"
OpenJDK Runtime Environment (rhel-2.3.9.1.el6_4-x86_64)
OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode)

卸载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 package>为安装某个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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ cd /jdk1.7所在目录
$ rpm -ivh jdk-7u17-linux-x64.rpm
Preparing... ########################################### [100%]
1:jdk ########################################### [100%]
Unpacking JAR files...
rt.jar...
Error: Could not open input file: /usr/java/jdk1.7.0_17/jre/lib/rt.pack
jsse.jar...
Error: Could not open input file: /usr/java/jdk1.7.0_17/jre/lib/jsse.pack
charsets.jar...
Error: Could not open input file: /usr/java/jdk1.7.0_17/jre/lib/charsets.pack
tools.jar...
Error: Could not open input file: /usr/java/jdk1.7.0_17/lib/tools.pack
localedata.jar...
Error: Could not open input file: /usr/java/jdk1.7.0_17/jre/lib/ext/localedata.pack
以上那些错误可以忽略,不影响jdk到安装和使用

配置环境变量

这是很关键的一步,jdk使用过程中绝大部分问题都跟环境变量的配置有关,需要配置的变量有JAVA_HOMEPATHCLASSPATH,其中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)