(转)Linux(Centos)之安装Java JDK及注意事项
场景:天下事有难易乎?为之,则难者亦易矣;不为,则易者亦难矣。人之为学有难易乎?学之,则难者亦易矣;不学,则易者亦难矣。
1 准备工作
下面配置jdk的方式在具有root权限时候能够执行。如果没有root权限,建议使用当前用户目录配置的方式进行配置:
编辑文件
vi $HOME/.profile
并在文件末尾添加
#export JRE_HOME=$ORACLE_HOME/jdk/jre
export JAVA_HOME=/home/simu/jdk1.7.0_67/jre
export PATH=$PATH:$JAVA_HOME/bin
最后执行:
source $HOME/.profile
1.1 检查系统版本
建议:在安装软件时候用root用户进行安装。
因为Java JDK区分32位和64位系统,所以在安装之前必须先要判断以下我们的Centos系统为多少位系统,命令如下:
uname -a
rpm -qa|grep java
查询结果如下:
java-1.6.0-openjdk-1.6.0.38-1.13.10.0.el6_7.x86_64
java-1.7.0-openjdk-1.7.0.95-2.6.4.0.el6_7.x86_64
tzdata-java-2015g-2.el6.noarch
卸载查询出来的jdk
卸载上面三个文件(--nodeps 的作用:忽略依赖的检查):
sudo rpm -e --nodeps java-1.6.0-openjdk-1.6.0.38-1.13.10.0.el6_7.x86_64 sudo rpm -e --nodeps java-1.7.0-openjdk-1.7.0.95-2.6.4.0.el6_7.x86_64 sudo rpm -e --nodeps tzdata-java-2015g-2.el6.noarch
也可以一起卸载:
sudo rpm -e --nodeps java-1.6.0-openjdk-1.6.0.38-1.13.10.0.el6_7.x86_64 java-1.7.0-openjdk-1.7.0.95-2.6.4.0.el6_7.x86_64 tzdata-java-2015g-2.el6.noarch
JDK 1.8 安装
- 我们以安装
jdk-8u72-linux-x64.tar.gz为例 - 我个人习惯
/opt目录下创建一个目录setups用来存放各种软件安装包;在/usr目录下创建一个program用来存放各种解压后的软件包,下面的讲解也都是基于此习惯 - 我个人已经使用了第三方源:
EPEL、RepoForge,如果你出现yum install XXXXX安装不成功的话,很有可能就是你没有相关源,请查看我对源设置的文章 - 解压安装包:
sudo tar -zxvf jdk-8u72-linux-x64.tar.gz - 移到解压包到我个人习惯的安装目录下:
mv jdk1.8.0_72 /usr/program/ - 配置环境变量:
- 编辑配置文件:
sudo vim /etc/profile - 在该文件的最尾巴,添加下面内容:
# JDK
JAVA_HOME=/usr/program/jdk1.8.0_72
JRE_HOME=$JAVA_HOME/jre
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export JRE_HOME
export PATH
export CLASSPATH
- 执行命令,刷新该配置(必备操作):
source /etc/profile - 检查是否使用了最新的 JDK:
java -version
- 编辑配置文件:
1.2下载JDK
底部的Java Archive保存的是Java的历史存档,点击进入

这里就找到要下载的1.7版本了,继续点击

下面两个都是64位的JDK,两个的区别在于安装方式不同。参考http://www.cnblogs.com/lixuwu/p/6097102.html
这里我把两个软件都下载下来进行练习

1.3 JDK安装环境
操作需要的软件以及系统如下:虚拟机(Vmware),虚拟机中安装的Centos系统,Xshell,FileZila,jdk-7u80-linux-x64.tar.gz
2 安装JDK
通过上面准备工作之后,我们现在已经拥有了可以安装JDK的环境。
2.1 创建用户目录
在使用非root用户登录时候,按照如下步骤操作:
#首先切换到root权限
su #创建目录
mkdir project ll cd project/

2.2 上传JDK文件到指定目录
然后使用FileZila将jdk复制到project文件夹下面,如图所示:
下图是解压后的目录列表,上传的文件是已经标注。

2.3 解压JDK
直接在用JDK文件所在目录解压缩文件
tar -zxv -f jdk-7u80-linux-x64.tar.gz

查看JDK文件内容:

通过上面的步骤,我们的jdk已经全部完成安装了,接下来就是更重要的一步:配置环境变量
对javaJDK的配置分为两种情况,一种是ROOT用户进行配置,一种是普通用户进行配置。ROOT用户配置完成后,即为Linux下各用户(ROOT用户和各非ROOT用户)默认的JDK配置。而普通用户配置完后只对当前用户,也就是自己有效。
当然,根据就近原则,若ROOT用户和当前用户都对JDK进行了配置,Linux使用当前用户配置的JDK信息。
2.4 配置root用户环境变量
在root用户下面,配置全局的环境变量
1、先执行
vim /etc/profile
在JDK所在目录下,查找JDK的根目录
pwd

JDK的绝对路径在配置文件中会用到。
2、 打开之后按键盘(i)进入编辑模式,将下面的内容复制到底部
JAVA_HOME=/home/cs408/project/jdk1.7.0_80
export JRE_HOME=$JAVA_HOME/jre
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar
export PATH JAVA_HOME CLASSPATH

#add by lxw
export JAVA_HOME=/usr/java/jdk1..0_67
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile
2.5 配置当前用户环境变量
首先使用cd命令,切换到当前用户目录,并查看用户的环境变量配置文件,有的是.bash_profile,这里是.profile 文件:

然后执行
vi .profile #将java变量信息粘贴到文件底部
export JAVA_HOME=/home/tws/server/jdk1..0_67
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

ps:如果2在1上面环境变量不会生效。为稳妥起见,把java的环境变量放在最下面。
保存,然后执行生效命令
source .profile

3 验证是否成功
java -version echo $JAVA_HOME

4 卸载JDK
rpm -qa|grep jdk

然后执行命令,将上面查询出来的每个版本以此删掉即可。
yum -y remove java java-1.8.0-openjdk-headless-1.8.0.65-3.b17.el7.x86_64
5 补充
5.1 问题
- linux服务器重启后环境变量失效,需要重新执行
source /etc/profile
如何保证重启后环境变量生效,还待验证
- root用户安装完jdk后,非root用户不能执行java -version 命令,执行如下命令即可
source /etc/profile
授权协议的不同:OpenJDK采用GPL V2协议放出,而SUN JDK则采用JRL放出。两者协议虽然都是开放源代码的,但是在使用上的不同在于GPL V2允许在商业上使用,而JRL只允许个人研究使用。
OpenJDK不包含Deployment(部署)功能:部署的功能包括:Browser Plugin、Java Web Start、以及Java控制面板,这些功能在OpenJDK中是找不到的。
OpenJDK源代码不完整:这个很容易想到,在采用GPL协议的OpenJDK中,SUN JDK的一部分源代码因为产权的问题无法开放给OpenJDK使用,其中最主要的部份就是JMX中的可选元件SNMP部份的代码。因此这些不能开放的源代码 将它作成plug,以供OpenJDK编译时使用,你也可以选择不要使用plug。而Icedtea则为这些不完整的部分开发了相同功能的源代码 (OpenJDK6),促使OpenJDK更加完整。
部分源代码用开源代码替换:由于产权的问题,很多产权不是SUN的源代码被替换成一些功能相同的开源代码,比如说字体栅格化引擎,使用Free Type代替。
OpenIDK只包含最精简的JDK:OpenJDK不包含其他的软件包,比如Rhino Java DB JAXP……,并且可以分离的软件包也都是尽量的分离,但是这大多数都是自由软件,你可以自己下载加入。
不能使用Java商标:这个很容易理解,在安装OpenJDK的机器上,输入“java
-version”显示的是OpenJDK,但是如果是使用Icedtea补丁的OpenJDK,显示的是java。
总之,在Java体系中,还是有很多不自由的成分,源代码的开发不够彻底,希望Oracle能够让JCP更自由开放一些,这也是所有Java社区所希望的。
(转)Linux(Centos)之安装Java JDK及注意事项的更多相关文章
- Linux(Centos)之安装Java JDK及注意事项
1.准备工作 a.因为Java JDK区分32位和64位系统,所以在安装之前必须先要判断以下我们的Centos系统为多少位系统,命令如下: uname -a 解释:如果有x86_64就是64位的,没有 ...
- Linux(Centos、Debian)之安装Java JDK及注意事项(转)
--转自:http://www.cnblogs.com/hanyinglong/p/5025635.html 说明:本人是以Debian 操作系统来进行安装的,这篇文章有很大帮助,才学Linux对有些 ...
- 如何检查linux 下是否安装java(jdk)环境
大家可通过下面五条命令来查看linux 系统是否安装了java 环境 1.java -version 2.which java 3.rpm -qa |grep java 4.echo $PATH 5. ...
- linux 源码安装JAVA jdk
下载Linux环境下的jdk1.8,请去(官网)中下载jdk的安装文件: 由于我的Linux是64位的,因此我下载jdk-8u131-linux-x64.tar.gz. 下载之后 解压命令进行解压 1 ...
- Linux环境下安装Java JDK
一.说明 操作系统:CenterOS 7 工具:MobaXterm (根据个人喜好xshell等工具也行) 三.安装步骤 第一步:下载JDK 1.下载LInux环境下的jdk,请去 官网 中下载jdk ...
- CentOS安装Java JDK
JDK是 Java 语言的软件开发工具包,主要用于移动设备.嵌入式设备上的java应用程序.在Linux上安装Tomcat,而Tomcat服务器运行时是需要JDK支持的,所以服务器必须配置好JDK用到 ...
- 在CentOS 7/6.5/6.4 中安装Java JDK 8(转载)
转载在CentOS 7/6.5/6.4 中安装Java JDK 8 首先,在你的服务器上运行一下更新. yum update 然后,在您的系统上搜索,任何版本的已安装的JDK组件. rpm -qa | ...
- Linux中安装java JDK
Linux中安装java JDK 1.下载jdk 下载地址:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads. ...
- linux安装java jdk
一.检查是否已经安装java jdk. 检查是否有自带的openJdk, 若有将其卸载删除.详情第四步 二.jdk下载安装. 1.创建文件夹 mkdir /usr/local/java #自选目录,一 ...
随机推荐
- idea live template
最近正在研究如何给idea添加注释模板. 此篇文章是记录在写(开发)注释模板的过程中遇到的坑. 1. methodParameters() 当函数的参数列表为空的时候返回的是: [] 当函数的参数列表 ...
- 同是办公软件,wps和office有什么区别?
今天完美小编为大家带来的是wps和office有什么区别教程,那么到底有什么区别呢?相信很多朋友都模棱两可,说不出所以然,看看下面的教程,相信你会选择更适合你的那一款软件.一起来看看吧! 1.两者特点 ...
- .Net中的AOP系列之《将AOP作为架构工具》
返回<.Net中的AOP>系列学习总目录 本篇目录 编译时初始化和验证 编译时初始化 切面验证的正确用法 真实案例:复习线程 架构约束 强制架构 真实案例:NHibernate 多播 类级 ...
- C#中switch的使用
今天在网上看到有人给出这么一个程序需求,博主就拿来回忆回忆C#中switch的用法 程序需求如下: 根据星期几(一 ~日) ,输出特价菜“一”.“二”.“三”,输出“干煸扁豆6元.”“四”.“五”,输 ...
- 东北育才 DAY2组合数取mod (comb)
组合数取模(comb) [问题描述] 计算C(m,n)mod 9901的值 [输入格式] 从文件comb.in中输入数据. 输入的第一行包含两个整数,m和n [输出格式] 输出到文件comb.out中 ...
- WCF入门, 到创建一个简单的WCF应用程序
什么是WCF? WCF, 英文全称(windows Communication Foundation) , 即为windows通讯平台. windows想到这里大家都知道了 , WCF也正是由微软公 ...
- Python 内置函数汇总
循环设计与循环对象 range() enumerate() zip() iter() 函数对象 map() filter() reduce() 序列操作 all([True, 1, "hel ...
- 一步一步教你将开源项目上传到jcenter
最近闲着看了一下jcenter的使用,也想将自己使用频率比较高的东西抽成类库,然后通过compile来使用,提高开发效率,本来以为挺简单的,但是网上介绍的比较模糊,很多博客也比较老了,不适用,花了我一 ...
- redis可视化客户端工具
TreeNMS是一款redis,Memcache可视化客户端工具,采用JAVA开发,实现基于WEB方式对Redis, Memcached数据库进行管理.维护. 功能包括:NoSQL数据库的展示,库表的 ...
- 《HelloGitHub》第 15 期
公告 这段时间没怎么写文章,跑去写 https://hellogithub.com 这个网站了,现在已经顺利上线,功能后面会持续迭代. 最后,这个 https://hellogithub.com 网站 ...