加载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’
我在StackOverflow上提到了各种帖子,并尝试相应地进行更改,但没有任何效果。这些是我为解决问题而采取的各种步骤:
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
我还在我的环境变量中将C:\Program Files (x86)\Java\jre1.8.0_91\bin\client
添加到我的PATH变量并重新启动了RStudio并尝试再次安装和加载rJava。这也行不通。
如果有人能帮我解决这个问题,我真的很感激。
谢谢你们!
答案 0 :(得分:28)
这对我有用 -
通常通过安装适合您正在使用的R版本(即64位R或32位R)的Java版本(即64位Java或32位Java)来解决此错误。此问题很容易影响Windows 7用户,因为他们可能安装了与他们使用的R版本不同的Java版本。
请注意,有必要“手动下载并安装”64位版本的JAVA。默认情况下,下载页面提供32位版本。
您可以从此链接中选择要安装的Java的确切版本。如果您(由于某种原因)可能在两个版本的R上工作,则可以安装两个版本的Java(安装“Java Runtime Environment”可能足以满足您的需求)。 (来源: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)
答案 1 :(得分:9)
我遇到了同样的问题。请务必检查Java的文件路径。为了解决我需要下载64位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')
希望有所帮助
答案 2 :(得分:2)
我已经在WIndows中的R,RStudio和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.
按照上面的步骤1和2。
答案 3 :(得分:0)
我猜您的操作系统架构和R架构不匹配。如果它们匹配,则可能是以下问题
在我将Windows库路径添加到Windows 7上的环境变量列表后,它对我有用。
所以,
添加' C:/Users/Rohan-PC/Documents/R/win-library/3.1'系统变量列表下的Path变量列表的这条路径(不要与User变量下的PATH变量混淆)。重新启动R并尝试加载库。它有效!!!!!
答案 4 :(得分:0)
我尝试了对方所说的无济于事。对我来说,解决方案是消除我的计算机上的R版本32位的旧文件夹和快捷方式,即使在卸载后仍然存在。
答案 5 :(得分:0)
如果同时安装了64位R和32位R版本,请分别尝试。
对我来说,它只能在R 64位上工作,而不能在R 32位上工作。 但这当然取决于您的Java版本(64位Java与32位Java)。