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 | $ 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 package>
为安装某个 rpm 包的命令,参数 ivh
各自的意义如下所示1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
-i, --install install package(s)
-v, --verbose provide more detailed output
-h, --hash print hash marks as package installs (good with -v)
```
而`rpm -Uvh`则表示升级一个软件包
```
$ 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_HOME
,PATH
和 CLASSPATH
, 其中 JAVA_HOME
表示 Java 的安装目录,PATH
是为了让系统在任何路径下都可以识别出 java 的命令,CLASSPATH
则指定 Java 运行时查找 class 文件的路径,尤其需要注意 CLASSPATH 需要包含当前目录,也就是.
,而且还要包含工具类库 tool.jar
;如果需要 Swing 包,还可以添加 dt.jar
。所以上面这三个变量的最简配置如下所示:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17$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
```
使环境变量立即生效
```
$source /etc/profile
```
## 测试安装是否成功
依次输入`java,java -version,javac`,看到输出信息即可,例如
```
# 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)