无法加载rJava,因为无法加载共享库
我一直在努力在R中加载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'
我已经尝试了很多解决方案,他们都在我的头脑中。 在某些时候我甚至得到了
> 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
我接下来应该尝试什么?
我正在运行R版本2.10.1(2009-12-14),我也尝试了R版本2.10.1 Patched(2010-03-03 r51210)。 它是在运行Windows 7企业版的Windows机器上运行的
跟进Dirk的一些圣人建议:
- 您的路径可能应该是
C:\Program Files\Java\jre6\bin\
(删除“客户端”)。 - 您的路径还应该有
C:\Program Files\R\R-2.10.1\bin\
。 您不需要对rJava库的显式引用。 然后我还会从路径中删除C:\Program Files\R
- 最后,确认可以通过命令提示符输入
java -version
来访问Java,也可以通过键入system("java -version")
从R中访问system("java -version")
。 - 如果您安装SDK,那么您还需要一个系统变量
JAVA_HOME
,在我的例子中指向C:\Sun\SDK\
。
如果您已经阅读过此威胁,并且上述建议都没有发挥作用,那么可能值得进一步尝试:
- Windows 7的
- R版本2.12.1(2010-12-16)64位
-
Java(TM)SE运行时环境(版本1.6.0_23-b05),Java HotSpot(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变量。
编辑post以便于阅读/格式化后,您的路径中似乎没有Java系统。 我没有使用你试图使用它的操作系统,但是在我的rJava
只有在我还安装了Java Run-Time Environment或更好的Java SDK时才有效。
请注意,包清楚地列出
SystemRequirements: java
并且rJava网站明确指出以下内容
安装
首先,确保安装了JDK 1.4或更高版本(某些平台需要更高版本才能看到R Wiki)。 在unix系统上,确保R配置了Java支持。 如果没有,您可以使用R CMD javareconf重新配置R(您可能必须预先添加sudo或以root身份运行它,具体取决于您的安装 – 有关详细信息,请参阅R-ext手册A.2.2)。 在Windows上从注册表运行时检测到Java。
rJava可以使用install.packages(’rJava’)从CRAN安装为任何其他R包。 有关开发版本,请参阅左侧菜单中的files部分。
JRI仅在受支持时编译,即如果R被配置为框架或使用–enable-R-shlib。
所以我认为我们有一些吸烟枪指向同样的方式。
为了它的价值,在我的PATH
放置C:\Program Files\Java\jre6\bin\[server]
对我C:\Program Files\Java\jre6\bin\[server]
。 似乎rJava模块可能在那里找到jvm.dll
。
以下是我正在使用的R和Java版本(在64位Windows 7上)。
Java的:
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)
系统信息:R版本3.0.1(2013-05-16)平台:x86_64-w64-mingw32 / x64(64位)
我遇到了同样的问题。 我能够通过从这个网站获得的命令窗口中的一行代码解决问题。
Sys.setenv(JAVA_HOME =’C:\ Program Files \ Java \ jre7’)
请注意,我使用了这个特定的行,因为我使用的是64位系统。 有关32位示例,请参见网站。
我有一个类似的错误,不得不做一个额外的修复:将R路径显式设置为… bin \ x64,并且在使用x64 Java和R时也保持一致。