Linux下jdk的安装卸载切换
1. Linux下jdk的安装包:
a).bin包(jdk-6u45-linux-i586-rpm.bin)
b).tar.gz包(jdk-8u144-linux-i586.tar.gz)
c).rpm包(jdk-7u80-linux-i586.rpm)
2.Linux下jdk的安装:
a).bin包:
1 初始文件夹下只有jdk-6u45-linux-i586-rpm.bin文件: 2 [root@localhost jdk-6u45]# ll 3 总用量 67036 4 -rwxr-xr-x. 1 root root 68637258 7月 20 15:11 jdk-6u45-linux-i586-rpm.bin 5 6 给.bin文件的执行赋权限 7 [root@localhost jdk-6u45]# chmod +x jdk-6u45-linux-i586-rpm.bin 8 9 10 执行.bin文件 11 [root@localhost jdk-6u45]# ./jdk-6u45-linux-i586-rpm.bin 12 Unpacking... 13 Checksumming... 14 Extracting... 15 UnZipSFX 5.50 of 17 February 2002, by Info-ZIP (Zip-Bugs@lists.wku.edu). 16 inflating: jdk-6u45-linux-i586.rpm 17 inflating: sun-javadb-common-10.6.2-1.1.i386.rpm 18 inflating: sun-javadb-core-10.6.2-1.1.i386.rpm 19 inflating: sun-javadb-client-10.6.2-1.1.i386.rpm 20 inflating: sun-javadb-demo-10.6.2-1.1.i386.rpm 21 inflating: sun-javadb-docs-10.6.2-1.1.i386.rpm 22 inflating: sun-javadb-javadoc-10.6.2-1.1.i386.rpm 23 Preparing... ########################################### [100%] 24 1:jdk ########################################### [100%] 25 Unpacking JAR files... 26 rt.jar... 27 jsse.jar... 28 charsets.jar... 29 tools.jar... 30 localedata.jar... 31 plugin.jar... 32 javaws.jar... 33 deploy.jar... 34 35 Done. 36 [root@localhost jdk-6u45]# 37 38 当前文件夹下文件: 39 [root@localhost jdk-6u45]# ll 40 总用量 134524 41 -rw-r--r--. 1 root root 58463270 3月 27 2013 jdk-6u45-linux-i586.rpm 42 -rwxr-xr-x. 1 root root 68637258 7月 20 15:11 jdk-6u45-linux-i586-rpm.bin 43 -rw-r--r--. 1 root root 499375 11月 3 2010 sun-javadb-client-10.6.2-1.1.i386.rpm 44 -rw-r--r--. 1 root root 14627 11月 3 2010 sun-javadb-common-10.6.2-1.1.i386.rpm 45 -rw-r--r--. 1 root root 4080625 11月 3 2010 sun-javadb-core-10.6.2-1.1.i386.rpm 46 -rw-r--r--. 1 root root 969861 11月 3 2010 sun-javadb-demo-10.6.2-1.1.i386.rpm 47 -rw-r--r--. 1 root root 4865183 11月 3 2010 sun-javadb-docs-10.6.2-1.1.i386.rpm 48 -rw-r--r--. 1 root root 201273 11月 3 2010 sun-javadb-javadoc-10.6.2-1.1.i386.rpm 49 [root@localhost jdk-6u45]#
以上执行完之后, 会自动在/usr/目录下生成java目录, java目录下包含jdk信息。最后修改/etc/profile文件即可。
1 [root@localhost java]# vim /etc/profile 2 进入文件后,添加JAVA_HOME,CLASSPATH,PATH配置。 3 export JAVA_HOME=/usr/java/jdk1.6.0_45 4 export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib 5 export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
6 保存退出文件后,执行使文件生效命令
7 [root@localhost java]# source /etc/profile
b).tar.gz包
1 解压.tar.gz文件: 2 [root@localhost jdk-8u144]# tar -zxvf jdk-8u144-linux-i586.tar.gz 3 4 解压后的文件移至/usr/java/下: 5 [root@localhost jdk-8u144]# mv jdk1.8.0_144/ /usr/java/ 6 7 修改/etc/profile文件,配置环境变量, 添加JAVA_HOME,CLASSPATH,PATH路径, 使文件生效, 同上。
注意:如果/usr目录下不存在java目录, 直接使用mv jdk1.8.0_144/ /usr/java/命令, 会自动创建java目录, 但是不会有jdk1.8.0_144/目录, 只是将jdk1.8.0_144目录下的文件移至了/usr/java/目录下, 如果使用命令前存在java目录, 则将jdk1.8.0_144/目录作为整体移至/usr/java/目录下。
c).rpm包
在使用.bin包方式安装jdk时, 执行完命令会产生.rpm文件, 可以把这个rpm文件作为安装文件, 也可以从Oracle下载。
1 初始含有.rpm包文件: 2 [root@localhost jdk-7u80]# ll 3 总用量 133572 4 -rw-r--r--. 1 root root 136775360 7月 23 19:29 jdk-7u80-linux-i586.rpm 5 6 使用rpm命令安装 7 [root@localhost jdk-7u80]# rpm -ivh jdk-7u80-linux-i586.rpm 8 Preparing... ########################################### [100%] 9 1:jdk ########################################### [100%] 10 Unpacking JAR files... 11 rt.jar... 12 jsse.jar... 13 charsets.jar... 14 tools.jar... 15 localedata.jar... 16 jfxrt.jar... 17 plugin.jar... 18 javaws.jar... 19 deploy.jar... 20 [root@localhost jdk-7u80]# 21 22 当前文件夹不会产生新文件 23 [root@localhost jdk-7u80]# ll 24 总用量 133572 25 -rw-r--r--. 1 root root 136775360 7月 23 19:29 jdk-7u80-linux-i586.rpm
和.bin包的安装一样, 执行完命令, 会自动在/usr/目录下创建java目录, jdk信息放在jdk目录下, 配置/etc/profile中配置JAVA_HOME,CLASSPATH,PATH就行。
如果使用rpm -ivh jdk-7u80-linux-i586.rpm命令安装出现RPM should not be used directly install RPM packages, use Alien instead!这个错误, 执行以下命令即可:
rpm -ivh jdk-6u22-linux-i586.rpm --nodeps --force。
3. Linux下jdk的卸载:
a).bin包安装和.rpm包安装的jdk卸载:
1 首先查看当前安装的jdk信息: 2 [root@localhost jdk-7u80]# rpm -qa | grep jdk 3 jdk-1.7.0_80-fcs.i586 4 [root@localhost jdk-7u80]# 5 6 卸载安装的jdk: 7 [root@localhost jdk-7u80]# rpm -e --nodeps jdk-1.7.0_80-fcs.i586
b).tar.gz包安装的jdk卸载:
直接删除解压后的安装包即可。
1 进入/usr/java目录 2 [root@localhost java]# cd /usr/java/ 3 4 删除解压后的jdk文件 5 [root@localhost java]# rm -rf jdk1.8.0_144/
c)系统自带的jdk的卸载:
1 查看自带的jdk: 2 [root@localhost /]# rpm -qa | grep jdk 3 或者: 4 [root@localhost /]# rpm -qa | grep gcj 5 6 可能得到结果: 7 jdk-1.7.0_80-fcs.i586 8 9 卸载: 10 [root@localhost /]# rpm -e –nodeps jdk-1.7.0_80-fcs.i586 11 或者: 12 [root@localhost /]# ryum -y remove jdk-1.7.0_80-fcs.i586
4.Linux上不同版本jdk的切换:
1)安装jdk与环境变量的配置:
以jdk6u45,jdk7u80,jdk8u144作为案例安装版本。其中jdk6u45版本是通过bin包安装,jdk7u80和jdk8u144通过tar.gz解压安装。安装过程中发现, 在使用bin包安装一个版本后, 不能使用bin包或rpm包安装其他版本。安装目录分别为:
-
- jdk6u45:/usr/jdk/jdk6u45/jdk1.6.0_45/
- jdk7u80:/usr/jdk/jdk7u80/jdk1.7.0_80/
- jdk8u144:/usr/jdk/jdk8u144/jdk1.8.0_144/
关于环境变量,在/etc/profile文件里面, 没有添加任何配置。
2)将安装的jdk登记在alternatives里面:
可以使用alternatives命令, 也可以使用sudo update-alternatives 命令。(两者区别还没了解)
1 jdk6u45添加到alternatives里面: 2 [root@localhost /]# alternatives --install /usr/bin/java java /usr/jdk/jdk6u45/jdk1.6.0_45/bin/java 3 3 [root@localhost /]# alternatives --install /usr/bin/javac javac /usr/jdk/jdk6u45/jdk1.6.0_45/bin/javac 3 4 [root@localhost /]# alternatives --install /usr/bin/jar jar /usr/jdk/jdk6u45/jdk1.6.0_45/bin/jar 3 5 6 jdk7u80添加到alternatives里面: 7 [root@localhost /]# alternatives --install /usr/bin/java java /usr/jdk/jdk7u80/jdk1.7.0_80/bin/java 4 8 [root@localhost /]# alternatives --install /usr/bin/javac javac /usr/jdk/jdk7u80/jdk1.7.0_80/bin/javac 4 9 [root@localhost /]# alternatives --install /usr/bin/jar jar /usr/jdk/jdk7u80/jdk1.7.0_80/bin/jar 4 10 11 jdk8u144添加到alternatives里面: 12 [root@localhost /]# alternatives --install /usr/bin/java java /usr/jdk/jdk8u144/jdk1.8.0_144/bin/java 5 13 [root@localhost /]# alternatives --install /usr/bin/javac javac /usr/jdk/jdk8u144/jdk1.8.0_144/bin/javac 5 14 [root@localhost /]# alternatives --install /usr/bin/jar jar /usr/jdk/jdk8u144/jdk1.8.0_144/bin/jar 5
3)查看安装的jdk版本并切换:
1 查看已经安装的jdk版本: 2 [root@localhost /]# alternatives --display java 3 java - 状态是自动。 4 链接目前指向 /usr/jdk/jdk8u144/jdk1.8.0_144/bin/java 5 /usr/jdk/jdk6u45/jdk1.6.0_45/bin/java - 优先度 3 6 /usr/jdk/jdk7u80/jdk1.7.0_80/bin/java - 优先度 4 7 /usr/jdk/jdk8u144/jdk1.8.0_144/bin/java - 优先度 5 8 当前“最佳”版本是 /usr/jdk/jdk8u144/jdk1.8.0_144/bin/java。 9 [root@localhost /]# 10 11 配置已经安装的jdk版本: 12 [root@localhost /]# alternatives --config java 13 14 共有 3 个程序提供“java”。 15 16 选择 命令 17 ----------------------------------------------- 18 1 /usr/jdk/jdk6u45/jdk1.6.0_45/bin/java 19 2 /usr/jdk/jdk7u80/jdk1.7.0_80/bin/java 20 *+ 3 /usr/jdk/jdk8u144/jdk1.8.0_144/bin/java 21 22 按 Enter 来保存当前选择[+],或键入选择号码:2 23 [root@localhost /]# java -version 24 java version "1.7.0_80" 25 Java(TM) SE Runtime Environment (build 1.7.0_80-b15) 26 Java HotSpot(TM) Server VM (build 24.80-b11, mixed mode) 27 [root@localhost /]#
4)补充:
如果添加错误或者想从alternatives中移除可以使用alternatives --remove java /usr/jdk/jdk6u45/jdk1.6.0_45/bin/java命令。
网上查的资料, 只是将bin/java添加到了alternatives中, 在尝试的过程中, 发现只添加bin/java不能对java文件进行编译, 所以在上面的也将bin/javac和bin/jar添加到了alternatives中。