最近博主一直在研究Linux,由于还是个小白,经常遇到各种各样的问题,比如今天就遇到了Linux下安装JDK的 问题,做个记录,记录成长。。。
首先,我使用的是 CentOS 6.8. CentOS 下是带有JDK的.
解决方法1
我们可以直接安装JDK,只需要 解压 java .tar.gz包 / 或者运行bin 文件 即可。然后配置 /etc/profile 文件, 根据配置文件读取的顺序,即可用新的JDK。
解决方法2
卸载原有的JDK, 安装新的JDK。(之后的步骤和解决方法1 一致)
接下来进入实际操作环节
第一步 :查询议已经安装的JDK
用root用户登陆到系统,打开一个终端输入
[root@localhost soft]# rpm -qa | grep gcj
libgcj-4.1.2-42.el5
java-1.4.2-gcj-compat-1.4.2.0-40jpp.115
上面先确认jdk的具体版本号,然后
第二步 : 卸载之前安装的JDK
[root@localhost jdk1.6.0_11]#
命令一: yum -y remove java-1.4.2-gcj-compat-1.4.2.0-40jpp.115 #yum包管理机制
命令二: rpm -e --nodeps java-1.4.2-gcj-compat-1.4.2.0-40jpp.115 #rpm包卸载方式
Setting up Remove Process
Resolving Dependencies………..(开始卸载)
Removed: java-1.4.2-gcj-compat.i386 0:1.4.2.0-40jpp.115
Dependency Removed: antlr.i386 0:2.7.6-4jpp.2 bsf.i386 0:2.3.0-11jpp.1 bsh.i386 0:1.3.0-9jpp.1 gjdoc.i386 0:0.7.7-12.el5 hsqldb.i386 1:1.8.0.9-1jpp.2 openoffice.org-calc.i386
1:2.3.0-6.5.el5 openoffice.org-core.i386 1:2.3.0-6.5.el5 openoffice.org-draw.i386 1:2.3.0-6.5.el5 openoffice.org-graphicfilter.i386 1:2.3.0-6.5.el5 openoffice.org-impress.i386
1:2.3.0-6.5.el5 openoffice.org-langpack-zh_CN.i386 1:2.3.0-6.5.el5 openoffice.org-langpack-zh_TW.i386 1:2.3.0-6.5.el5 openoffice.org-math.i386 1:2.3.0-6.5.el5 openoffice.org-
writer.i386 1:2.3.0-6.5.el5 openoffice.org-xsltfilter.i386 1:2.3.0-6.5.el5 tomcat5-jsp-2.0-api.i386 0:5.5.23-0jpp.7.el5 tomcat5-servlet-2.4-api.i386 0:5.5.23-0jpp.7.el5 xalan-
j2.i386 0:2.7.0-6jpp.1 xerces-j2.i386 0:2.7.1-7jpp.2 xml-commons-apis.i386 0:1.3.02-0.b2.7jpp.10 xml-commons-resolver.i386 0:1.1-1jpp.12
Complete!(卸载完成)
第三步 解压安装
下面开始手动安装,我用的安装包是jdk-6u11-linux-i586.bin,没有使用red hat平台通用的rpm包。
首先,通过ssh将jdk-6u11-linux-i586.bin上传到/home/xjj/soft下。然后,要给jdk-6u11-linux-i586.bin
分配权限,具体的这里要给它可执行的权限,输入:chmod +x jdk-6u11-linux-i586.bin,这里参数x即使执行权限。
[root@localhost soft]# chmod +x jdk-6u11-linux-i586.bin
然后解压:./jdk-6u11-linux-i586.bin,
[root@localhost soft]# ./jdk-6u11-linux-i586.bin
执行之后会有一堆agreement什么的,一路more下去。接着有个确认安装的,输入yes,然后回车。开始解压。一直到
Java(TM) SE Development Kit 6 successfully installed.
.........
Press Enter to continue.....
Done.
看看解压后的文件先
[root@localhost soft]# ls
jdk1.6.0_11 jdk-6u11-linux-i586.bin
[root@localhost soft]# cd jdk1.6.0_11
[root@localhost jdk1.6.0_11]# ls
bin db include lib man README_ja.html register.html register_zh_CN.html src.zip
COPYRIGHT demo jre LICENSE README.html README_zh_CN.html register_ja.html sample THIRDPARTYLICENSEREADME.txt
哈哈,看到我们熟悉的东西了吧完成解压。一般都将安装文件放在usr/local下,当然你不这样也拿你没办法。所以,先执行拷贝:
[root@localhost soft]# mv jdk1.6.0_11 /usr/local[root@localhost xjj]# cd ../..
[root@localhost /]# ls
bin dev home lost+found misc net proc sbin srv tmp var
boot etc lib media mnt opt root selinux sys usr
[root@localhost /]# cd /usr/local
[root@localhost local]# ls
bin etc games include jdk1.6.0_11 lib libexec sbin share src
第四步 设置环境变量
jdk已经成功搬运到了/usr/local下,然后就是最后一步,设置环境变量了。这里有两中设置,
一种是通过export设置临时生效,重启之后设置会丢失,
一种是将设置写入/etc/profile文件中,可以一直生效。所以,最好的设置当然是写入文件中了。
先执行下面命令:
[root@localhost jdk1.6.0_11]# vi /etc/profile
打开profile文件后输入i进入insert模式,在文件中添加如下内容。
export JAVA_HOME=/usr/local/jdk1.6.0_11
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/rt.jar
然后esc,输入:x,保存退出。然后需要设置让更改生效:
[root@localhost local]# source /etc/profile
当然,如果你喜欢重启的话,你reboot也可以。
好了看看现在的jdk版本吧:
[root@localhost local]# java -version
java version “1.6.0_11″
Java(TM) SE Runtime Environment (build 1.6.0_11-b03)
Java HotSpot(TM) Client VM (build 11.0-b16, mixed mode, sharing)
大功告成!
这里讲解下Linux读取配置文件的顺序
Linux的配置文件主要分为两类
一 login shell
全局配置
/etc/profile
用户自身的配置
~/.bash_profile ~/.bash_login ~/.profile
Tips: ~代表用户自身的home路径。对于root 为 /root | 对于其他用户 xyz 为/home/xyz
二 non-login shell
~/.bashrc , 实际上为 /etc/bashrc
non-login shell :取得bash接口的方法不需要重复登录的举动。
例:
1.以X Window登录Linux.再以X的图形界面启动终端机,此时那个终端接口没有再次输入帐号与密码,那个bash的环境称为non-login shell
2.在原本的bash环境下再次执行bash命令,同样不需要输入帐号密码。第二个bash(子进程)也是non-login shell.
读取的顺序
login shell
先读取/etc/profile,
之后读取个人配置,依次是:
1.~/.bash_profile
2.~/.bash_login
3.~/.profile
1.2.3读取的规则是
1存在,2,3不读取,设置为1
1不存在,2,3存在,设置为2
1,2不存在,3存在,设置为3
non-login shell
~/.bashrc