R - 错误:'rJava' 的 loadNamespace() 中的 .onLoad 失败
Posted
技术标签:
【中文标题】R - 错误:\'rJava\' 的 loadNamespace() 中的 .onLoad 失败【英文标题】:R - Error : .onLoad failed in loadNamespace() for 'rJava'R - 错误:'rJava' 的 loadNamespace() 中的 .onLoad 失败 【发布时间】:2016-10-10 15:30:59 【问题描述】:在加载 rJava
包时,我收到此错误:
Error : .onLoad failed in loadNamespace() for 'rJava', details: call: inDL(x, as.logical(local), as.logical(now), ...) error: unable to load shared object 'C:/Users/ankitagarwal5/Documents/R/win-library/3.2/rJava/libs/x64/rJava.dll': LoadLibrary failure: %1 is not a valid Win32 application. In addition: Warning message: package ‘rJava’ was built under R version 3.2.3 Error: package or namespace load failed for ‘rJava’
我参考了 *** 上的各种帖子并尝试进行相应的更改,但没有任何效果。以下是我为解决此问题而采取的各种步骤:
if (Sys.getenv("JAVA_HOME")!="")
Sys.setenv(JAVA_HOME="")
library(rJava)
这不起作用。
然后我尝试了这个:
options(java.home="C:\\Program Files\\Java\\jre1.8.0_91\\")
library(rJava)
这也没有用。
我的 jvm.dll 位于我的 Windows 7 64 位操作系统中的这个位置 - C:\Program Files (x86)\Java\jre1.8.0_91\bin\client
我还在环境变量中的 PATH 变量中添加了C:\Program Files (x86)\Java\jre1.8.0_91\bin\client
,并重新启动了 RStudio,并尝试再次安装和加载 rJava。那也没用。
如果有人能帮我解决这个问题,我将不胜感激。
谢谢大家!
【问题讨论】:
尝试从 shellR CMD javareconf
运行并重新安装 rJava
。当然不能保证。
请不要在问题中编辑您的答案。取而代之的是页面底部的答案部分。
@josliber ,进行了建议的更改。谢谢。
类似 OS X:***.com/questions/1348842/…
提醒任何阅读此线程并遇到问题的人:首先尝试 OP 尝试的代码(但对他/她不起作用)。我遇到了一个类似的错误,通过运行他们给出的第一个示例来修复。希望这可以帮助某人。
【参考方案1】:
这对我有用 -
此错误通常可以通过安装适合您使用的 R 版本类型(即 64 位 R 或 32 位 R)的 Java 版本(即 64 位 Java 或 32 位 Java)来解决。此问题很容易影响 Windows 7 用户,因为他们可能安装了与他们正在使用的 R 版本不同的 Java 版本。
请注意,需要“手动下载并安装”64 位版本的 JAVA。默认情况下,下载页面提供 32 位版本。
您可以从此链接中选择您希望安装的 Java 的确切版本。如果您可能(出于某种原因)同时使用两个版本的 R,则可以安装两个版本的 Java(安装“Java 运行时环境”可能足以满足您的需要)。 (来源:Uwe Ligges)
其他可能的解决方案是尝试重新安装 rJava。
如果这不起作用,您还可以通过在加载库之前设置来手动设置 Java 位置的目录:
Sys.setenv(JAVA_HOME='C:\\Program Files\\Java\\jre7') # for 64-bit version
Sys.setenv(JAVA_HOME='C:\\Program Files (x86)\\Java\\jre7') # for 32-bit version
library(rJava)
参考此链接 - http://www.r-bloggers.com/how-to-load-the-rjava-package-after-the-error-java_home-cannot-be-determined-from-the-registry/
【讨论】:
打猎后非常适合我。完全有道理,希望 rJava 包中的调试消息更指向这个方向。that fits to the type of R version that you are using
怎么可能轻易确定这一点?
谢谢 - 尝试安装 tabulizer 包时遇到同样的问题,这对我有用。【参考方案2】:
我遇到了同样的问题。请务必检查 Java 的文件路径。为了解决这个错误,我需要下载 64bit Java 版本。但是,R 中的以下代码不起作用,因为该文件夹对于 Java 的最新版本不正确:
Sys.setenv(JAVA_HOME='C:\\Program Files\\Java\\jre7') # for 64-bit version
相反,我将名称更改为:
Sys.setenv(JAVA_HOME='C:\\Program Files\\Java\\jre1.8.0_144')
希望有帮助
【讨论】:
【参考方案3】:我注意到在 WIndows 中不同的全新 R、RStudio 和 rJava 安装中,修复错误的是:
-
卸载 R
重新安装 R,但只选择一种架构。例如,x64 或 x86,但不能同时使用两者。这往往会使 R 或 RStudio 在编译时感到困惑。
在我的情况下,我修复了消息
Error : .onLoad failed in loadNamespace() for 'rJava', details:
call: inDL(x, as.logical(local), as.logical(now), ...)
error: unable to load shared object 'C:/Users/ankitagarwal5/Documents/R/win-library/3.2/rJava/libs/x64/rJava.dll':
LoadLibrary failure: %1 is not a valid Win32 application.
按照上述步骤 1 和 2。
【讨论】:
【参考方案4】:我尝试了其他人所说的无效。对我来说,解决方案是消除我计算机上 R 版本 32 位的旧文件夹和快捷方式,即使卸载后仍然存在。
【讨论】:
【参考方案5】:我猜你的操作系统架构和 R 架构不匹配。如果它们匹配,则可能是以下问题
在我将 R 库路径添加到我的 Windows 7 上的环境变量列表后,它对我有用。
所以,
将“C:/Users/Rohan-PC/Documents/R/win-library/3.1”这个路径添加到系统变量列表下的路径变量列表中(不要与用户变量下的路径变量混淆)。重新启动 R 并尝试加载库。好用!!!!!!
【讨论】:
【参考方案6】:如果您同时安装了 64 位 R 和 32 位 R 版本,请分别尝试。
对我来说,它适用于 R 64 位,但不适用于 R 32 位。 但这当然取决于您的 Java 版本(64 位 Java 与 32 位 Java)。
【讨论】:
实际上问题似乎与 32 位和 64 位有关,但对于答案,您应该更加确定问题和解决方案。【参考方案7】:当 Java 更新到 32 位时发生这种情况,但 R 需要 64 位版本。
解决办法:
-
只需download the 64-bit version of Java
安装它。
重启 RStudio
一切正常
64位java的下载地址:
【讨论】:
以上是关于R - 错误:'rJava' 的 loadNamespace() 中的 .onLoad 失败的主要内容,如果未能解决你的问题,请参考以下文章