zoukankan      html  css  js  c++  java
  • CentOS 6.5移除openJDK及JDK安装环境变量配置及JDK版本切换

    一、查找已经安装的open JDK

    [root@localhost ~]# rpm -qa|grep jdk  
    java-1.6.0-openjdk-1.6.0.0-1.50.1.11.5.el6_3.x86_64  
    java-1.7.0-openjdk-1.7.0.9-2.3.4.1.el6_3.x86_64  
    [root@localhost ~]# rpm -qa|grep gcj  
    java-1.4.2-gcj-compat-1.4.2.0-40jpp.115    
    libgcj-4.1.2-48.el5  

    二、移除open JDK

    [root@localhost ~]# yum -y remove java java-1.6.0-openjdk-1.6.0.0-1.50.1.11.5.el6_3.x86_64  
    [root@localhost ~]# yum -y remove java java-1.7.0-openjdk-1.7.0.9-2.3.4.1.el6_3.x86_64  
    [root@localhost ~]# yum -y remove java java-1.4.2-gcj-compat-1.4.2.0-40jpp.115    
    [root@localhost ~]# yum -y remove libgcj-4.1.2-48.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 500  

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

        [root@node1 mec]# alternatives --config java  
          
        共有 3 个程序提供“java”。  
          
          选择    命令  
        -----------------------------------------------  
           1           /usr/lib/jvm/jre-1.5.0-gcj/bin/java  
        *  2           /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java  
         + 3           /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) 64-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.1.gz
    [root@localhost opt]# ll /usr/bin/java
    lrwxrwxrwx. 1 root root 22 1月   1 2014 /usr/bin/java -> /etc/alternatives/java
    [root@localhost opt]# 
    [root@localhost opt]# ll /etc/alternatives/java
    lrwxrwxrwx. 1 root root 46 1月   1 2014 /etc/alternatives/java -> /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
    [root@localhost opt]#
    [root@localhost jvm]# pwd
    /usr/lib/jvm
    [root@localhost jvm]# ls
    java-1.6.0-openjdk-1.6.0.0.x86_64  java-1.7.0-openjdk-1.7.0.65.x86_64  jre  jre-1.6.0  jre-1.6.0-openjdk.x86_64  jre-1.7.0  jre-1.7.0-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.7.0_79
    [root@localhost jvm]# echo $CLASSPATH
    .:/home/opt/jdk1.7.0_79/lib:.:/home/opt/jdk1.7.0_79
    [root@localhost jvm]# echo $PATH 
    /home/opt/jdk1.7.0_79/bin:/home/opt/jdk1.7.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.7.0_79 jdk1.7.0_79_
    [root@localhost opt]# 
    [root@localhost opt]# java -version
    -bash: /home/opt/jdk1.7.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 64-Bit Server VM (build 24.65-b04, mixed mode)
    [root@localhost opt]#
    [root@localhost opt]# /usr/lib/jvm/jre-1.7.0-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 64-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.7.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.8.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) 64-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) 64-Bit Server VM (build 24.79-b02, mixed mode)
    [root@localhost opt]# 

    很简单吧!!!!

  • 相关阅读:
    python的不可变对象与可变对象及其妙用与坑
    WAAPI+Python使用中的相关问题和学习记录
    开发工具使用
    面试要点5
    面试要点4
    HTTP状态码——详解
    ElasticSearch使用curl导数据报400可能原因
    elasticsearch的安装、部署
    js二级联动
    aspose.words for java操作文档doc,设置一级二级三级标题以及段落表格等详情
  • 原文地址:https://www.cnblogs.com/maxiaofang/p/6107217.html
Copyright © 2011-2022 走看看