在Ubuntu18安装rJava

最近在移植一些科学界已经发表的网页小工具到我们生信技能树的服务器,发现很多工具都是依赖于rJava这个R包,在Ubuntu安装其实还是有一定的难度,所以分享一下!

首先查看Ubuntu的R和java版本

因为完全是自己做主的服务器,所以我安装了购买时候的最新版R语言

ubuntu@VM-0-3-ubuntu:~$ which R
/usr/bin/R
ubuntu@VM-0-3-ubuntu:~$ R --version
R version 3.6.1 (2019-07-05) -- "Action of the Toes"
Copyright (C) 2019 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under the terms of the
GNU General Public License versions 2 or 3.
For more information about these matters see
https://www.gnu.org/licenses/.

但是,对于JAVA我选择了比较稳定的java8

ubuntu@VM-0-3-ubuntu:~$ which java
/usr/bin/java
ubuntu@VM-0-3-ubuntu:~$ java -version
openjdk version "1.8.0_222"
OpenJDK Runtime Environment (build 1.8.0_222-8u222-b10-1ubuntu1~18.04.1-b10)
OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode)

接下来就基于这些系统环境来开始安装rJava吧!

最开始安装rJava包肯定报错

代码是:

options("repos" = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))
install.packages("rJava")

第一次报错是:

configure: error: Java Development Kit (JDK) is missing or not registered in R
Make sure R is configured with full Java support (including JDK). Run
R CMD javareconf
as root to add Java support to R.

If you don't have root privileges, run
R CMD javareconf -e
to set all Java-related variables and then install rJava.

既然报错日志指出来了我们应该使用root权限,运行命令:R CMD javareconf

第一次调试失败

发现运行:R CMD javareconf 并不能解决问题,反而引入了新的错误:

trying to compile and link a JNI program
detected JNI cpp flags    :
detected JNI linker flags : -L$(JAVA_HOME)/lib/amd64/server -ljvm
During startup - Warning message:
Setting LC_CTYPE failed, using "C"
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG     -fpic  -g -O2 -fdebug-prefix-map=/build/r-base-uuRxut/r-base-3.6.1=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g  -c conftest.c -o conftest.o
conftest.c:1:10: fatal error: jni.h: No such file or directory
 #include <jni.h>
          ^~~~~~~
compilation terminated.
/usr/lib/R/etc/Makeconf:167: recipe for target 'conftest.o' failed
make: *** [conftest.o] Error 1
Unable to compile a JNI program

同样的,谷歌搜索关键词,发现解决方案:https://stackoverflow.com/questions/42562160/r-cmd-javareconf-not-finding-jni-h

问题在于我之前安装的是java的jre而不是jdk,所以需要再次安装:

# sudo apt install openjdk-8-jre-headless
# 之前使用上面的代码安装了jre,而不是jdk
sudo apt-get install openjdk-8-jdk

然后就成功啦!

当然了,在Windows平台和MAC平台,解决问题的方案肯定不一样,但是解决问题的思路是一样的。

另外一个类似的教程:为什么清华源的R镜像恰好缺了rvest包呢

本文分享自微信公众号 - 生信技能树(biotrainee)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-11-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏eguid开源技术分享

javascript常用开发笔记:一个简单强大的js日期格式化方法

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

11140
来自专栏sringboot

python df遍历的N种方式

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

16540
来自专栏sringboot

SpringMVC response返回参数绑定

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

11540
来自专栏sringboot

搞懂 SpringMVC

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

6020
来自专栏sringboot

搞懂Spring提供的事务管理接口PlatformTransactionManager

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

7720
来自专栏sringboot

SpringMVC 入门跳转小案例

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

6320
来自专栏Linyb极客之路

提升10倍生产力:IDEA远程一键部署SpringBoot到Docker

IDEA是Java开发利器,springboot是Java生态中最流行的微服务框架,docker是时下最火的容器技术,那么它们结合在一起会产生什么化学反应呢?

10250
来自专栏sringboot

SpringBoot项目目录POJO包

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

10140
来自专栏eguid开源技术分享

java原生实现屏幕设备遍历和屏幕采集(捕获)等功能

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

9430
来自专栏sringboot

Spring MVC组件

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

5840

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励