暑假以来为了鼓捣双系统废了很大的劲儿,本来一股脑想装 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 的报错信息会在下一篇博文里细细解释一下...

Ubuntu 中 java 环境 (sunjdk) 的配置 (附详细说明)的更多相关文章

  1. Java全栈程序员之02:Ubuntu下Java环境安装、配置、测试

    在上文讲完之后,我们手里的ubuntu只能算是一个上网机,什么也干不了,本篇我们将折腾它为开发机. 这里,我们这里假定你对linux体系是初级选手,所以本篇会讲的啰嗦一点,高手就出门左转吧. 1.安装 ...

  2. Ubuntu中Hadoop环境搭建

    Ubuntu中Hadoop环境搭建 JDK安装 方法一:通过命令行直接安装(不建议) 有两种java可以安装oracle-java8-installer以及openjdk (1)安装oracle-ja ...

  3. Windows 下java环境变量的配置(Windows7 ,8,8.1,10)

    Windows 下java环境变量的配置 在“系统”面板的左上角选择“高级系统设置”,在弹出的系统属性中选择”高级“项,然后点击右下角的“环境变量(N)...”,就此进入JAVA环境变量的配置. 如果 ...

  4. Question20180106 Java环境变量的配置及为什么要配置环境变量

    Question 1  Java环境变量的配置及为什么要配置环境变量 Q1.1为什么要配置环境变量 在学习JAVA的过程中,涉及到多个环境变量(environment variable)的概念,如PA ...

  5. Java之JDK的下载与安装,java环境变量的配置,Editplus的下载与使用

    JRE(Java Runtime Environment Java运行环境) 包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等,如果想要运行一个开发 ...

  6. 如何安装java环境和如何配置java环境

    https://jingyan.baidu.com/article/0202781175839b1bcc9ce529.html java如今是一门十分热门的可跨平台面向对象的高级编程语言,那么作为学习 ...

  7. 怎样在Ubuntu中设置环境变量

    首先启动终端. 单击屏幕左上角的Ubuntu图标,在弹出的窗口中点击搜索栏,输入"terminal", 稍等片刻,终端就会赫然在目!二话不说,直接点击!     然后打开环境设置文 ...

  8. Ubuntu安装java环境

    Ubuntu安装java环境 1.添加ppa sudo add-apt-repository ppa:webupd8team/java sudo apt-get update 2.安装oracle-j ...

  9. VirtualBox 中的UBUNTU和java环境的配置以及各种常用说明

    本来是要ubuntu下学习C++的,但是又懒的用高手们推荐的各种记事本级的操作,所以要用IDE.(我用IDE我自豪,人类的进化就是建立在工具的使用这个基础之上的.)我选用了oracle的netbean ...

随机推荐

  1. UML类图几种关系的总结(转载 http://blog.csdn.net/tianhai110/article/details/6339565 )

    http://blog.csdn.net/tianhai110/article/details/6339565

  2. hadoop2.7.x运行wordcount程序卡住在INFO mapreduce.Job: Running job:job _1469603958907_0002

    一.抛出问题 Hadoop集群(全分布式)配置好后,运行wordcount程序测试,发现每次运行都会卡住在Running job处,然后程序就呈现出卡死的状态. wordcount运行命令:[hado ...

  3. maven入门学习(一)

    一.maven介绍 1.软件开发中我们为什么要使用maven呢?(纯属个人体会观点,如有错误,敬请指正) (1)其一,企业岗位需求,目前的IT开发招聘岗位上,基本都要求会使用maven.        ...

  4. 负载均衡集群ipvsadm命令及基本用法

    ipvsadm是LVS在应用层的管理命令,我们可以通过这个命令去管理LVS的配置.需要使用yum单独安装. 基本用法: ipvsadm COMMAND [protocol] service-addre ...

  5. Python3,x:如何进行手机APP的数据爬取

    Python3,x:如何进行手机APP的数据爬取 一.简介 平时我们的爬虫多是针对网页的,但是随着手机端APP应用数量的增多,相应的爬取需求也就越来越多,因此手机端APP的数据爬取对于一名爬虫工程师来 ...

  6. html4与html5的区别

    一.HTML5更加灵活,支持下列多种形式 1.标签名可以大写(不推荐) -<SpAN>这个HTML5也的认</SpAN> 2.属性双引号可选(推荐添加双引号) -<div ...

  7. mysql数据库导入、导出、数据传输

    Navicat数据库之间导入导出1.双击要导出的数据库,右键选转储SQL文件...,选择要保存的文件夹. 2.点击开始后,开始导出. 数据库导入1.新建数据库,数据库的名字必须和导入的数据库文件一致. ...

  8. error: 'for' loop initial declarations are only allowed in C99 mode

    error: 'for' loop initial declarations are only allowed in C99 mode   出现错误: error: 'for' loop initia ...

  9. uitableview 侧滑删除

    https://github.com/MortimerGoro/MGSwipeTableCell

  10. JavaWeb -- Struts1 使用示例: 表单校验 防表单重复提交 表单数据封装到实体

    1. struts 工作流程图 超链接 2. 入门案例 struts入门案例: 1.写一个注册页面,把请求交给 struts处理 <form action="${pageContext ...