加载 rJava 时出错

Posted

技术标签:

【中文标题】加载 rJava 时出错【英文标题】:Error while loading rJava 【发布时间】:2012-11-04 09:24:35 【问题描述】:

当我想加载 rJava 时出现错误。 JDK 已安装。 (我在 CentOS 虚拟机上运行 R(cloudera demo vm cdh3u4))

> library(rJava)

Error : .onLoad failed in loadNamespace() for 'rJava', details:
  call: dyn.load(file, DLLpath = DLLpath, ...)
  error: unable to load shared object '/home/cloudera/R/x86_64-redhat-linux-gnu-library/2.15/rJava/libs/rJava.so':
  libjvm.so: cannot open shared object file: No such file or directory
Error: package/namespace load failed for ‘rJava’

LD_LIBRARY_PATH 设置有问题吗?如果是,我该如何解决? 我需要运行 rJava 以便稍后安装 rhdfs。

更多信息(如果需要):

[cloudera@localhost ~]$ java -version
java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b04)
Java HotSpot(TM) 64-Bit Server VM (build 20.6-b01, mixed mode)

【问题讨论】:

【参考方案1】:

对于 Ubuntu,安装了 oracle-java (7/8)。它将在此位置 /usr/lib/jvm 并且需要 sudo 访问权限。

使用以下条目创建文件/etc/ld.so.conf.d/java.conf

/usr/lib/jvm/java-8-oracle/jre/lib/amd64
/usr/lib/jvm/java-8-oracle/jre/lib/amd64/server

(将 java-8-oracle 替换为 java-7-oracle 或 java-7-openjdk-amd64,具体取决于您的 java 版本)

然后:

sudo ldconfig

重启 RStudio,然后安装 rJava 包。

【讨论】:

它解决了我在安装rJavaRWekaFSelector 等过程中出现的所有问题。成千上万的“谢谢”! 这是 rJava 找不到 JVM 的真正解决方案。我在win7上遇到了类似的问题。这是两个平台上的问题的服务器目录。 您可以在我的回答中找到更详细的解释 - ***.com/a/25932828/3409405【参考方案2】:

让 rJava 工作在很大程度上取决于您的计算机配置。以下至少在 windows 平台上工作。您可以尝试检查一下,这是否对您的平台也有帮助。

    您必须使用相同的 32 位或 64 位版本:R JDK/JRE。这种混合永远不会奏效(至少对我而言)。

    如果您使用 64 位版本,请确保您不要将 JAVA_HOME 设置为环境变量。如果设置了这个变量,无论出于何种原因,rJava 都将无法工作。您可以检查您的 JAVA_HOME 是否设置在 R 中:

    Sys.getenv("JAVA_HOME")
    

如果您需要设置 JAVA_HOME(例如,您需要它用于 maven 或其他),您可以在加载 rJava 之前使用以下代码在您的 R-session 中停用它:

if (Sys.getenv("JAVA_HOME")!="")
  Sys.setenv(JAVA_HOME="")
library(rJava)

在大多数情况下,这应该可以解决问题。此外,这也将解决问题Using the rJava package on Win7 64 bit with R。我从R: rJava package install failing借用了取消设置环境变量的想法。

【讨论】:

以上是关于加载 rJava 时出错的主要内容,如果未能解决你的问题,请参考以下文章

R - 错误:'rJava' 的 loadNamespace() 中的 .onLoad 失败

rJava 安装错误“无法从注册表确定 JAVA_HOME”

VC 动态加载 dll 出错求教

使 rJava 或 R 使用不同的(以前的)Java 版本

加载配置文件时出错: 由于访问被拒绝

Jwplayer 闪烁“加载播放器时出错:无法加载播放器配置”