zoukankan      html  css  js  c++  java
  • Ubuntu 中 java 环境 (sunjdk) 的配置 (附详细说明)

    暑假以来为了鼓捣双系统废了很大的劲儿,本来一股脑想装 CentOS,无奈怎么处理分区引导都不能成功地与 Win8 共存,最终用 Ubuntu 一句 "检测到系统上有 Windows Boot Manager" 就给绕过了,实在是伤心...

    装上 Linux 后,最重要的事情当然就是配置各种工作站. 一直在努力训练的 R 放在了首位. 不料在安装 rJava 包的时候,竟碰上了大问题,一直提示说 Java 的配置有问题.本来吧,我以为直接用 apt-get 装上 Linux 下的 openjdk 就可以了(一般来说不是原装的都兼容比较好么= =),没想到无论如何调试都有问题.最后的最后,在卸载掉 openjdk 上官网下载了官网版本,比对两种 JDK 文件夹里的内容时,终于发现了问题所在:openjdk 的bin文件夹里居然是没有javac等文件的!(至少我没发现...忘了截图...)这就导致了一个很严重的问题, R 中 rJava 包是严格地需要 bin 中的这些文件的.因此,openjdk 在此不适用.以此类推,其他的一些需要 JDK 编译环境也很有可能像 rJava 一样需要完整的 sunjdk 版本.

    吐槽完毕,以下是干货.


    卸载 openjdk

    apt-get remove

    一般来说,大家装在 Linux 上的 openjdk 都是直接通过各版本的管理工具来安装的.以下用,那么,直接 remove 掉就可以啦...(或者,狠心如我, purge 掉所有带有 openjdk 开头的插件)

    # 其实可以先 tab 一下看看自己装了什么版本的 JDK
    # sudo apt-get remove (tab-tab)
    
    # 然后再卸载掉...(注意,我是想完全卸掉原有jdk版本才用的通配符啊)
    $ sudo apt-get remove openjdk-*
    

    关于环境变量

    如果是完全地想要卸载清空掉原有的 java 环境的话,可以 check 一下你的 /etc/profile~/.bashrc 文件,网上大部分教程提到 java 的环境变量配置的时候都是修改这两个文件中的其中一个来实现的.

    完全清空手动配置之 update-alternatives

    另外还有一个叫做"版本切换条目"的东东,Ubuntu 上是 update-alternatives .如果用的是 apt-get 命令安装或卸载的时候会自动处理(就是说不用管啦),但如果之前便是从网上下载了tar.gz包或.bin文件手动配置过的话,很可能会用到这个.

    以下命令行的作用是去掉可能的以前手动配置的jdk环境

    # 三思后行!如果是不想再使用以前的java版本才这么干的,欸!
    $ sudo update-alternatives --remove-all java
    $ sudo update-alternatives --remove-all javac
    

    安装 sunjdk

    下载安装包并复制文件夹

    Java 官网 下载 JDK

    比如说现时的最新版本是 jdk-8u51-linux-x64.tar.gz

    下载完成后进入下载目录解压缩

    $tar xzf ./jdk-8u51-linux-x64.tar.gz
    

    然后将解压后的文件夹 jdk1.8.0_51/ 复制到安装路径(前提:权限所有者必须是 root,否则会报错.) 举个栗子,我的是 /usr/share/.

    # 复制jdk1.8.0_51/文件夹到安装路径
    $ sudo cp -r ./jdk1.8.0_51/ /usr/share/
    

    配置版本切换条目 update-alternatives

    update-alternatives --install 命令配置,其中300是优先级.

    # 必须有的两条,java和javac
    
    $ sudo update-alternatives --install /usr/bin/java java /usr/share/jdk1.8.0_51/bin/java 300
    
    $ sudo update-alternatives --install /usr/bin/javac javac /usr/share/jdk1.8.0_51/bin/javac 300
    
    # 如果你无聊,也可以把javah等等也给配置上
    
    $ sudo update-alternatives --install /usr/bin/jar jar /usr/share/jdk1.8.0_51/bin/jar 300
    
    $ sudo update-alternatives --install /usr/bin/javah javah /usr/share/jdk1.8.0_51/bin/javah 300
    
    $ sudo update-alternatives --install /usr/bin/javap javap /usr/share/jdk1.8.0_51/bin/javap 300
    
    $ sudo update-alternatives --install /usr/bin/javaws javaws /usr/share/jdk1.8.0_51/bin/javaws 300
    

    提示:如果不小心将 javac 输错成了 java ...(哦呵呵我干的事情), 可以使用 remove 选项,具体用法请百度.

    指定JDK版本

    # config选项指定
    $ sudo update-alternatives --config java 
    $ sudo update-alternatives --config javac
    
    # 当你觉得无聊的时候其他的一些以此类推...
    

    如果系统中有除此以外的一些JDK版本会显示候选项:

    不然的话会提示说不需要选择,因为只有一条选项:

    $ sudo update-alternatives --config java
    
    There is only one alternative in link group java (providing /usr/bin/java): /usr/share/jdk1.8.0_51/bin/java
    Nothing to configure.
    

    设置环境变量

    修改 /etc/profile 文件,在最后加上这么几行

    # 记得修改具体路径...
    # Java System Variables
    
    export JAVA_HOME=/usr/share/jdk1.8.0_51
    
    export JRE_HOME=/usr/share/jdk1.8.0_51/jre
    
    export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
    
    export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
    

    刷新一下,

    $ sudo source /etc/profile
    

    最后 check 一下 JDK 的版本

    $ java -version
    
    java version "1.8.0_51"
    Java(TM) SE Runtime Environment (build 1.8.0_51-b16)
    Java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode)
    

    大功告成!


    关于 rJava 的报错信息会在下一篇博文里细细解释一下...

  • 相关阅读:
    系统分析师考试
    系统分析师
    软件设计师考试
    海恩法则”的启示:制度不落到实处事故必发
    eclipse下生成Java类图和时序图,生成UML图
    bzoj4010【HNOI2015】菜肴制作
    atitit.提升开发效率---MDA 软件开发方式的革命(5)----列表查询建模
    【数据结构和算法16】堆排序
    这一路走来,冷暖自知 (附算法demos)
    c++实现二叉搜索树
  • 原文地址:https://www.cnblogs.com/loca/p/4679110.html
Copyright © 2011-2022 走看看