2010-03-08 93 views
9

我一直挣扎在R.无法加载rJava因为无法加载共享库

加载rJava包我收到以下消息

> library(rJava) 
Error in inDL(x, as.logical(local), as.logical(now), ...) : 
    unable to load shared library \ 
    'C:/PROGRA~1/R/R-210~1.1/library/rJava/libs/rJava.dll': 
    LoadLibrary failure: The specified module could not be found. 


Error : .onLoad failed in 'loadNamespace' for 'rJava' 
Error: package/namespace load failed for 'rJava' 

我已经尝试了很多的解决方案,它们都在我的脑海里bamboo了。。 在某些时候,我甚

> R Console: Rgui.exe - System Error The 
> program can't start because 
> MSVCR71.dll is is missing from your 
> computer. Try reinstalling the program 
> to fix this problem. 

我确信一切我能想到的是路径

> C:\Program Files\R\Rtools\bin;C:\Program Files\R\Rtools\perl\bin; 
    C:\Program Files\R\Rtools\MinGW\bin;%SystemRoot%\system32; 
    %SystemRoot%;%SystemRoot%\System32\Wbem; 
    %SYSTEMROOT%\System32\WindowsPowerShell\v1.0\; 
    C:\Program Files\QuickTime\QTSystem\; 
    C:\Program Files\R\R-2.10.1\library\rJava\libs\; 
    C:\Program Files\R;C:\Program Files\Java\jre6\bin\client 

我应该尝试下呢?

我运行v版本2.10.1(2009-12-14),我也曾尝试[R版本2.10.1修补的(2010-03-03 r51210)。它运行的是Windows 7企业

+0

你的系统上是否有Java运行环境(Java Run-Time Environment,JRE)甚至Java SDK? – 2010-03-08 03:04:24

+0

在某个阶段(但相对较早),我去了http://www.java.com/en/并从那里下载了java。我现在回到该网站并使用他们的Java测试并获得了以下信息:供应商:Sun Microsystems Inc.版本:Java 6 Update 18操作系统:Windows 7 6.1架构:x86。该程序似乎位于C:\ Program Files \ Java \ jre6。我真的不知道路径如何工作。是否必须指定到实际的子目录,或者我只需指向一般的附近区域,软件就会知道要查看子目录。感谢您重新格式化我的文章。 – Farrel 2010-03-08 03:43:03

+0

正确安装给定的'组件'通常需要调整PATH,例如这就是R所做的。我引用的rJava文本谈到了从注册表中获取Java信息,所以我认为有些东西在你的盒子上。 – 2010-03-08 04:16:10

回答

4

跟进一些德克的圣人忠告:

  • 你的路径也许应该说C:\Program Files\Java\jre6\bin\(删除“客户端”)。
  • 你的路径也应该有C:\Program Files\R\R-2.10.1\bin\。你不需要明确引用rJava库。我也会从路径中删除C:\Program Files\R
  • 最后,确认可以通过访问命令提示符并键入java -version或通过键入system("java -version")来从R中访问Java。
  • 如果你安装了SDK,那么你还需要一个系统变量JAVA_HOME,在我的案例中指向C:\Sun\SDK\
+0

我正忙着审阅您的建议。当我看到它是否有效时,我会给你反馈。 – Farrel 2010-03-11 04:34:02

+0

它工作。谢谢。 – Farrel 2010-03-16 13:00:06

3

编辑职位可读性/格式化看来,你在你的路径中没有Java系统后,在Windows机器上。我不使用你正在尝试使用的操作系统,但是我的rJava只有在我还安装了Java运行环境或更好的Java SDK的情况下才有效。

注意,包明确列出

SystemRequirements: java 

,而且rJava site明确规定以下

安装

首先,确保你已经 JDK 1.4或更高版本(部分 平台需要更高版本请参阅R Wiki)。在unix系统上确保 R配置了Java支持。如果不是 ,您可以通过使用R CMD javareconf(您可能需要 预先安装sudo或根据您的安装运行它作为根 --有关详细信息,请参阅 R-ext手册A.2.2)来重新配置R.在 Windows Java在运行时从注册表中检测到 。

rJava可使用 install.packages( 'rJava')被安装为任何其它的R 包从CRAN。请参阅 开发版本左侧菜单中的 文件部分。如果支持

JRI仅编译, 即如果R被配置为 框架或与--enable-R-SHLIB。

所以我认为我们有几支吸烟枪指向相同的方式。

+0

我已经添加了一个编辑到我原来​​的问题。 – Farrel 2010-03-08 03:48:57

1

我有一个类似的错误,不得不做一个额外的解决办法:明确设置将R路径... BIN \ x64和也正在使用64位Java和R.

11

如果你有一致的读这种威胁既不的建议,到目前为止上述工作过,那么它可能是值得尝试的一个进一步:

  • Windows 7的
  • [R版本2.12.1(2010-12-16)64位
  • Jav一个(TM)SE运行时环境(建立1.6.0_23-B05),爪哇热点(TM)64位服务器VM(构建19.0-B09,混合模式)

    JAVA_HOME=C:\Program Files\Java\jre6\bin\

    Path= ...;C:\Program Files\Java\jre6\bin\server\;C:\Program Files\R\R-2.12.1\bin\x64\

终于解决了我的问题的东西是明确地将\server\添加到PATH变量。

+1

同样在这里,需要'\ server \'。我发现的方式是从R GUI运行'library(“rJava”)',它打印的jvm.dll不见了。 Emacs打印完全不同的错误信息。在将'\ server \'添加到路径后,emacs/ess和gui版本都可以正常工作。 – user443854 2012-12-10 20:51:05

+1

我可以同意。谢谢你在这里提供这个答案。 – 2013-03-09 21:45:55

3

为什么它的价值,把C:\Program Files\Java\jre6\bin\[server]在我的PATH为我工作。看来rJava模块可以在那里找到jvm.dll

以下是我正在使用的R和Java的版本(在64位Windows 7上)。

爪哇:

java version "1.6.0_30" 
Java(TM) SE Runtime Environment (build 1.6.0_30-b12) 
Java HotSpot(TM) 64-Bit Server VM (build 20.5-b03, mixed mode) 

R:

R version 2.14.1 (2011-12-22) 
Copyright (C) 2011 The R Foundation for Statistical Computing 
ISBN 3-900051-07-0 
Platform: x86_64-pc-mingw32/x64 (64-bit) 
3

系统信息: ř版本3.0.1(2013年5月16日) 平台:x86_64的-W64-的mingw32/64(64位)

我遇到了同样的问题。我可以用从代码website获得的命令窗口中的一行代码解决问题。

Sys.setenv(JAVA_HOME = 'C:\ Program Files文件\的Java \ jre7')

请注意,我用这一行,因为我是一个64位系统上。查看网站的32位示例。

相关问题