R - 错误:.onLoad在'rJava'的loadNamespace()中失败

use*_*469 33 r rjava

在加载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’
Run Code Online (Sandbox Code Playgroud)

我在StackOverflow上提到了各种帖子,并尝试相应地进行更改,但没有任何效果.以下是我解决问题的各个步骤:

if (Sys.getenv("JAVA_HOME")!="")
  Sys.setenv(JAVA_HOME="")
library(rJava)
Run Code Online (Sandbox Code Playgroud)

这没用.

然后我尝试了这个:

options(java.home="C:\\Program Files\\Java\\jre1.8.0_91\\")
library(rJava)
Run Code Online (Sandbox Code Playgroud)

这也不起作用.

我的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.这也行不通.

如果有人能帮我解决这个问题,我真的很感激.

多谢你们!

use*_*469 31

这对我有用 -

通常通过安装适合您正在使用的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)
Run Code Online (Sandbox Code Playgroud)

请参阅此链接 - http://www.r-bloggers.com/how-to-load-the-rjava-package-after-the-error-java_home-cannot-be-determined-from-the-registry/

  • 打猎后非常适合我。完全有道理,希望 rJava 包中的调试消息更指向这个方向。 (3认同)
  • “适合您正在使用的 R 版本的类型” 如何轻松确定这一点? (2认同)

小智 10

我遇到了同样的问题.请务必检查Java的文件路径.为了解决我需要下载64位Java版本的错误.但是,R中的以下代码不起作用,因为该文件夹对于Java的最新版本不正确:

Sys.setenv(JAVA_HOME='C:\\Program Files\\Java\\jre7') # for 64-bit version
Run Code Online (Sandbox Code Playgroud)

相反,我将名称更改为:

Sys.setenv(JAVA_HOME='C:\\Program Files\\Java\\jre1.8.0_144') 
Run Code Online (Sandbox Code Playgroud)

希望有所帮助


f0n*_*zie 5

我注意到在 WINdows 中 R、RStudio 和 rJava 的不同全新安装中,修复错误的是:

  1. 卸载 R
  2. 重新安装 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.
Run Code Online (Sandbox Code Playgroud)

按照上面的步骤 1 和 2。