3

我尝试在 Rstudio Server 0.99.467 和 Revolution Analytics Open R 3.2.0(主要是标准 R 3.2.0 和一些附加包)中加载 rJava,我收到以下错误

> require(rJava)
Loading required package: rJava
Error : .onLoad failed in loadNamespace() for 'rJava', details:
  call: dyn.load(file, DLLpath = DLLpath, ...)
  error: unable to load shared object '/usr/lib64/RRO-3.2.0/R-3.2.0/lib64/R/library/rJava/libs/rJava.so':
  libjvm.so: cannot open shared object file: No such file or directory

我正在使用 Centos 6.5 和 Oracle Java 1.8 JDK

[root@server ~]# 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)

我用谷歌搜索了这个问题,其中一个解决方案是将 JAVA_HOME 设置为空字符串,但是我已经将它设置为该值。

> Sys.getenv("JAVA_HOME")
[1] ""

如果这可能是问题的原因,我还有两个库路径:

> .libPaths()
[1] "/home/kjedrzejewski/R/x86_64-unknown-linux-gnu-library/3.2"
[2] "/usr/lib64/RRO-3.2.0/R-3.2.0/lib64/R/library" 

当我尝试在 bash 中的 R 控制台中加载此包时,不会出现此类错误。

4

1 回答 1

2

当我以 root 身份运行命令时,一切都开始工作了:

R CMD javareconf
rstudio-server verify-installation

我不确定到底有什么帮助。

在我的情况下,问题是 Rstudio ( Sys.getenv('LD_LIBRARY_PATH')) 访问的 $LD_LIBRARY_PATH 指向的 java 版本与我使用的不同。

于 2015-08-09T19:48:30.373 回答