一、查找已经安装的open JDK

[root@localhost ~]# rpm -qa|grep jdk
java-1.6.-openjdk-1.6.0.0-1.50.1.11..el6_3.x86_64
java-1.7.-openjdk-1.7.0.9-2.3.4.1.el6_3.x86_64
[root@localhost ~]# rpm -qa|grep gcj
java-1.4.-gcj-compat-1.4.2.0-40jpp.
libgcj-4.1.-.el5

二、移除open JDK

[root@localhost ~]# yum -y remove java java-1.6.-openjdk-1.6.0.0-1.50.1.11..el6_3.x86_64
[root@localhost ~]# yum -y remove java java-1.7.-openjdk-1.7.0.9-2.3.4.1.el6_3.x86_64
[root@localhost ~]# yum -y remove java java-1.4.-gcj-compat-1.4.2.0-40jpp.
[root@localhost ~]# yum -y remove libgcj-4.1.-.el5

三、下载SUN JDK

http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html

如果需要在Linux下安装,可以使用wget下载,不同版本地址从官网获取替换:

#具体地址到oracle官网赋值对应版本地址
wget --no-check-certificate -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz

四、解压压缩包配置环境变量(以下方法根据需要两者取一)

1.编辑/etc/profile

如果你的计算机仅仅作为开发使用时推荐使用这种方法,因为所有用户的shell都有权使用这些环境变量,可能会给系统带来安全性问题。
·用文本编辑器打开/etc/profile
·在profile文件末尾加入:
export JAVA_HOME=/usr/share/jdk1.6.0_14
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

·重新登录
·注解
a. 你要将 /usr/share/jdk1.6.0_14改为你的jdk安装目录
b. linux下用冒号“:”来分隔路径
c. $PATH / $CLASSPATH / $JAVA_HOME 是用来引用原来的环境变量的值
在设置环境变量时特别要注意不能把原来的值给覆盖掉了,这是一种
常见的错误。
d. CLASSPATH中当前目录“.”不能丢,把当前目录丢掉也是常见的错误。
e. export是把这三个变量导出为全局变量。
f. 大小写必须严格区分。

2. 修改.bash_profile文件

这种方法更为安全,它可以把使用这些环境变量的权限控制到用户级别,如果你需要给某个用户权限使用这些环境变量,你只需要修改其个人用户主目录下的.bash_profile文件就可以了。
·用文本编辑器打开用户目录下的.bash_profile文件
·在.bash_profile文件末尾加入:

export JAVA_HOME=/usr/share/jdk1.6.0_14
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

设置好之后重新打开终端,通过java -version查看是否安装成功。

五、SDK的切换

对于java 开发人员来说可能会遇到JDK版本切换的问题,这在Linux下面是很容易的。使用alternatives工具,这个单词本身的意思就是可选的。

首先按以上顺序安装多个版本的JDK,使用以下命令把JDK添加到alternatives可选项

alternatives --install /usr/bin/java java /usr/share/jdk1.6.0_14/bin/java   

运行如下命令进行JDK版本的选择

    [root@node1 mec]# alternatives --config java  

    共有  个程序提供“java”。  

      选择    命令
-----------------------------------------------
/usr/lib/jvm/jre-1.5.-gcj/bin/java
* /usr/lib/jvm/jre-1.7.-openjdk.x86_64/bin/java
+ /usr/java/default/bin/java 按 Enter 来保存当前选择[+],或键入选择号码:

本地开发环境多版本环境分析:

因为kettle升级为最新版本,且要依赖Java8,我们的环境一直是Java7,因此要装多个jdk版本混合的环境。大概查看了一下java环境如下:

[root@localhost opt]# java -version
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) -Bit Server VM (build 24.79-b02, mixed mode)

搜索一下java二进制程序:

[root@localhost opt]# whereis java
java: /usr/bin/java /etc/java /usr/lib/java /usr/share/java /usr/share/man/man1/java..gz
[root@localhost opt]# ll /usr/bin/java
lrwxrwxrwx. root root 1月 /usr/bin/java -> /etc/alternatives/java
[root@localhost opt]#
[root@localhost opt]# ll /etc/alternatives/java
lrwxrwxrwx. root root 1月 /etc/alternatives/java -> /usr/lib/jvm/jre-1.7.-openjdk.x86_64/bin/java
[root@localhost opt]#
[root@localhost jvm]# pwd
/usr/lib/jvm
[root@localhost jvm]# ls
java-1.6.-openjdk-1.6.0.0.x86_64 java-1.7.-openjdk-1.7.0.65.x86_64 jre jre-1.6. jre-1.6.-openjdk.x86_64 jre-1.7. jre-1.7.-openjdk.x86_64 jre-openjdk
[root@localhost jvm]#

通过以上查看发现最初的系统就已经存在java-1.6.0-openjdk-1.6.0.0.x86_64和java-1.7.0-openjdk-1.7.0.65.x86_64两个open JDK了。

当前的环境变量为:

[root@localhost jvm]# echo $JAVA_HOME
/home/opt/jdk1..0_79
[root@localhost jvm]# echo $CLASSPATH
.:/home/opt/jdk1..0_79/lib:.:/home/opt/jdk1..0_79
[root@localhost jvm]# echo $PATH
/home/opt/jdk1..0_79/bin:/home/opt/jdk1..0_79/jre/bin:/usr/local/nginx/sbin:/home/opt/play-1.2.7.2:/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost jvm]#

这里有一个重要的地方,$PATH中路径的位置,越靠前搜索的优先级越高。因此当我们把当前jdk目录改名,java也是能正常工作的,只不过此时运行的java是/usr/bin下的Java,最终运行的其实是/usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java。下面我们尝试一下:

[root@localhost opt]# mv jdk1..0_79 jdk1..0_79_
[root@localhost opt]#
[root@localhost opt]# java -version
-bash: /home/opt/jdk1..0_79/bin/java: 没有那个文件或目录
[root@localhost opt]# PATH=/usr/local/nginx/sbin:/home/opt/play-1.2.7.2:/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost opt]# echo $PATH
/usr/local/nginx/sbin:/home/opt/play-1.2.7.2:/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost opt]# java -version
java version "1.7.0_65"
OpenJDK Runtime Environment (rhel-2.5.1.2.el6_5-x86_64 u65-b17)
OpenJDK -Bit Server VM (build 24.65-b04, mixed mode)
[root@localhost opt]#
[root@localhost opt]# /usr/lib/jvm/jre-1.7.-openjdk.x86_64/bin/java -version
java version "1.7.0_65"
OpenJDK Runtime Environment (rhel-2.5.1.2.el6_5-x86_64 u65-b17)
OpenJDK -Bit Server VM (build 24.65-b04, mixed mode)
[root@localhost opt]#

把jdk1.7.0_79目录重命名后,敲入java命令会按$PATH中的路径从前往后搜索java,直到找到Java,或者找不到路径或命令则报错。把不存在的路径移除掉之后运行java -version发现版本变了,变成了1.7.0_65并且是OpenJDK,证明此时运行的是/usr/bin -> /etc/alternatives/java -> /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java。把这些原理搞清楚之后简单的配置多个版本的jdk也很容易了。

新建文件java-1.7-env:

JAVA_HOME=/home/opt/jdk1..0_79
export JAVA_HOME
PATH=/usr/local/nginx/sbin:/home/opt/play-1.2.7.2:/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
export PATH
export CLASSPATH=.:$JAVA_HOME
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$CLASSPATH

新建文件java-1.8-env:

JAVA_HOME=/home/opt/jdk1..0_131
export JAVA_HOME
PATH=/usr/local/nginx/sbin:/home/opt/play-1.2.7.2:/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
export PATH
export CLASSPATH=.:$JAVA_HOME
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$CLASSPATH

切换只需执行source  java-1.8-env:

[root@localhost opt]# source java-1.8-env
[root@localhost opt]# java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) -Bit Server VM (build 25.131-b11, mixed mode)
[root@localhost opt]#

切换1.7

[root@localhost opt]# source java-1.7-env
[root@localhost opt]# java -version
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) -Bit Server VM (build 24.79-b02, mixed mode)
[root@localhost opt]#

很简单吧!!!!



CentOS 6.5移除openJDK及JDK安装环境变量配置及JDK版本切换的更多相关文章

  1. jdk安装环境变量配置

    v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...

  2. win7下jdk安装环境变量配置

    新本本,新系统,还是得把武器给装配好. 以下图文记录win7系统下的jdk的安装和配置. 1.下载jdk 地址:http://java.sun.com/javase/downloads/index.j ...

  3. jdk环境变量配置方法

    jdk环境变量配置方法: 在安装完jdk后,还需要对jdk的环境变量进行配置才能正常使用,下面教大家如何配置jdk环境变量: 1.右键选择 计算机→属性→高级系统设置→高级→环境变量 2.系统变量→新 ...

  4. Java学习之道:jdk环境变量配置方法

    JDK(Java Development Kit)是整个Java的核心,包含了Java执行环境.Java工具和Java基础类库.JDK作为JAVA开发的环境,无论是做JAVA开发还是做安卓开发,都必须 ...

  5. 手把手JDK环境变量配置

    分为下载,配置,验证三个步骤解释如何进行JDK环境变量配置. 步骤一: 首先查看配置成功后的效果: tip:点击win——>运行(或者使用win+r,或者shift+鼠标右键打开powershe ...

  6. linux下jdk环境变量配置深度分析----解决环境变量不生效的问题

    1.linux下jdk环境变量配置 是否需要配置环境变量,主要看java -version 显示的版本是否为你期望的版本 1.1 不需要配置环境变量的情况 使用java -version查看,版本显示 ...

  7. Java自学-JDK环境变量配置

    JDK环境变量配置 分下载,配置,验证三个步骤进行JDK环境变量配置. 步骤 1 : 首先看配置成功后的效果 点WIN键->运行(或者使用win+r) 输入cmd命令 输入java -versi ...

  8. HelloWorld系列(一)- 手把手教你做JDK环境变量配置

    分下载,配置,验证三个步骤讲解如何进行JDK环境变量配置. 步骤1:首先看配置成功后的效果步骤2:下载,并解压到E:\JDK步骤3:环境变量配置步骤4:Win10 下环境变量Path的配置步骤5:验证 ...

  9. JAVA JDK 环境变量配置 入门详解 - 精简归纳

    JAVA JDK 环境变量配置 入门详解 - 精简归纳 JERRY_Z. ~ 2020 / 9 / 13 转载请注明出处!️ 目录 JAVA JDK 环境变量配置 入门详解 - 精简归纳 一.为什么j ...

随机推荐

  1. JVM原理和优化

    JVM工作原理和特点主要是指操作系统装入JVM是通过jdk中Java.exe来完成,通过下面4步来完成JVM环境. 1.创建JVM装载环境和配置 2.装载JVM.dll 3.初始化JVM.dll并挂界 ...

  2. 由Photoshop高反差保留算法原理联想到的一些图像增强算法。

    关于高反差保留的用处说明呢,从百度里复制了一段文字,我觉得写得蛮好的: 高反差保留就是保留图像的高反差部分,再说得真白些,就是保留图像上像素与周围反差比较大的部分,其它的部分都变为灰色.拿一个人物照片 ...

  3. python学习6

    1.map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回. eg: 2. reduce把一个函数作用在一个序 ...

  4. Error invoking SqlProvider method (com.github.abel533.mapper.MapperProvider.dynamicSQL). Cause: java.lang.InstantiationException: com.github.abel533.mapper.MapperProvider

    org.apache.ibatis.exceptions.PersistenceException: ### Error querying database.  Cause: org.apache.i ...

  5. 使用Jenkins配置自动化构建

    持续集成是个简单重复劳动,人来操作费时费力,使用自动化构建工具完成是最好不过的了. 为了实现这个要求,我选择了Jenkins. 从http://mirrors.jenkins-ci.org/windo ...

  6. MongoDB 导出、导入表

    var srcTbl = "20161226"; var destTbl = "20161226-bak";   方式一: MongoClient client ...

  7. PAT 1050. 螺旋矩阵(25)

    本题要求将给定的N个正整数按非递增的顺序,填入"螺旋矩阵".所谓"螺旋矩阵",是指从左上角第1个格子开始,按顺时针螺旋方向填充.要求矩阵的规模为m行n列,满足条 ...

  8. 检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005

    检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005 在CSDN上总是有网友问这个 ...

  9. [LeetCode] Binary Tree Vertical Order Traversal 二叉树的竖直遍历

    Given a binary tree, return the vertical order traversal of its nodes' values. (ie, from top to bott ...

  10. Html-button和input的区别

    一.定义和用法 <button> 标签定义的是一个按钮 1.在 <button> 元素内部,您可以放置内容,比如文本或图像.这是该元素与使用 <input> 元素创 ...