打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
在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)

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包

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
MacOS的rjava加载失败问题
利用火焰图查找java耗时最长的方法
[服务器教程]Minecraft|CraftBukkit,Spigot,MCPC+|Linux建服详细教程
Ubuntu 12.04 卸载自带OpenJDK, 手动下载IDK并配置Java运行环境
如何在Ubuntu 14.04中安装最新版Eclipse
Ubuntu16.04 安装openjdk
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服