首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加载rJava时出错

加载rJava时出错
EN

Stack Overflow用户
提问于 2012-11-16 01:49:40
回答 2查看 14.1K关注 0票数 7

当我想要加载rJava时,我得到了一个错误。已安装JDK。(我在cloudera( CentOS演示VM cdh3u4)上运行R)

代码语言:javascript
复制
> 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。

更多信息(如果需要):

代码语言:javascript
复制
[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)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-14 19:43:17

让rJava正常工作在很大程度上取决于您的计算机配置。下面的代码至少可以在windows平台上运行。如果这对你的平台也有帮助,你可以试着检查一下。

  1. 你必须同时使用相同的32位或64位版本:r JDK/JRE。
  2. 如果你使用的是64位版本,请确保不要将 JAVA_HOME设置为环境变量。如果设置了此变量,则无论出于何种原因,rJava都不会工作。您可以使用以下命令检查您的JAVA_HOME是否设置在R中:

Sys.getenv("JAVA_HOME")

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

代码语言:javascript
复制
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中取消设置环境变量的想法。

票数 12
EN

Stack Overflow用户

发布于 2014-09-19 19:27:44

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

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

代码语言:javascript
复制
/usr/lib/jvm/java-8-oracle/jre/lib/amd64
/usr/lib/jvm/java-8-oracle/jre/lib/amd64/server

(根据您的java版本,将java-8-oracle替换为java-7-oracle或java-7-openjdk-amd64 )

然后:

代码语言:javascript
复制
sudo ldconfig

重新启动RStudio,然后安装rJava包。

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13403268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档