无法在R上加载rJava

时间:2014-12-26 19:53:06

标签: r rjava

我希望在R x64 3.1.2中加载rJava。 OS- Windows 8.1 64位

虽然安装似乎工作正常:

  > install.packages("rJava")
    Installing package into ‘C:/Users/sony/Documents/R/win-library/3.1’
    (as ‘lib’ is unspecified)
    --- Please select a CRAN mirror for use in this session ---
    trying URL 'http://cran.utstat.utoronto.ca/bin/windows/contrib/3.1/rJava_0.9-6.zip'
    Content type 'application/zip' length 758898 bytes (741 Kb)
    opened URL
    downloaded 741 Kb

package ‘rJava’ successfully unpacked and MD5 sums checked

The downloaded binary packages are in
        C:\Users\sony\AppData\Local\Temp\RtmpamYUH7\downloaded_packages

加载包时出错:

library(rJava)
Error in get(Info[i, 1], envir = env) : 
  lazy-load database 'C:/Users/sony/Documents/R/win-library/3.1/rJava/R/rJava.rdb' is corrupt
In addition: Warning message:
In get(Info[i, 1], envir = env) : internal error -3 in R_decompress1
Error: package or namespace load failed for ‘rJava’

我知道我正在使用R-64位,同时环境变量Path设置为:

C:\Program Files\Java\jdk1.7.0_51\bin;C:\Program Files\Java\jre7\bin\server;

同样,Java版本也是64位。我不明白错误背后的原因。

手动设置R:

options(java.home="C:\\Program Files\\Java\\jdk1.7.0_51\\bin")
library(rJava)

我收到此错误:

enter image description here

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/sony/Documents/R/win-library/3.1/rJava/libs/x64/rJava.dll':
  LoadLibrary failure:  The specified module could not be found.

Error: package or namespace load failed for ‘rJava’

有什么建议吗?在我卸载了一些旧版本的Java后,错误似乎已经出现了。

OTHERS: 另外,我还没有将JAVA_HOME设置为环境变量。

卸载和重新安装R似乎也无法解决问题。

删除旧的Java版本也无济于事。

7 个答案:

答案 0 :(得分:32)

使用:

Sys.setenv(JAVA_HOME='...path to JRE...')

e.g。

Sys.setenv(JAVA_HOME='C:\\Program Files\\Java\\jdk1.7.0_51\\jre')

你的环境变量是错误的。

答案 1 :(得分:19)

我遇到了类似的错误:

> library(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:/program files/R/R-3.1.2/library/rJava/libs/x64/rJava.dll':
  LoadLibrary failure:  The specified module could not be found.

我的JAVA_HOME指的是JDK,而不是JRE

> Sys.getenv("JAVA_HOME")
[1] "c:\\java\\jdk1.7.0_55"
> Sys.setenv(JAVA_HOME="c:\\java\\jdk1.7.0_55\\jre")

我现在可以在rJava中加载xlsxR

答案 2 :(得分:4)

我遇到了类似的问题,花了一整天的时间来修复它。 虽然我的计算机,Windows7和Rstudio是64位,但我的Java是32位(!)一旦我意识到,我下载了64位Java。我必须手动下载,自动下载将导致32位版本,因为我的Chrome浏览器是32位。

将自动安装64位Java
  然而,

C:\ Program Files \ Java,将自动生成32位Java   安装在C:\ Program Files(x86)\ Java。

这是一个重要指标,告诉我我的Java是64位还是32位。

安装64位Java后,一切都很完美!

答案 3 :(得分:2)

面对类似的错误消息。

尝试了这里列出的几个步骤。

  1. 设置环境变量,JAVA_HOME。 =>没用。
  2. 试图安装rJava +>没工作 步骤3,4,5工作..
  3. 更新了我的Java 64位版本8.xx(最新版本)
  4. install.packages(rJava)==>成功
  5. install.packages(RWeka)==>成功

答案 4 :(得分:2)

有同样的问题:

我正在运行64-bit R您可以通过关闭并重新打开RStudio来检查哪个版本。它应该在顶部。

我安装了32-bit java,即Java文件夹在C:\Program Files (x86)内。

我只是去了Java.com并下载了64-bit Java并在PATH的{​​{1}}末尾添加了它的位置,我现在可以加载System variables。 (装置要求我摆脱我做的旧版本)

答案 5 :(得分:1)

可能是JAVA_HOME指针的设置存在问题。如果您没有JDK但拥有JRE,则可能需要这样做: Sys.setenv(JAVA_HOME ='C:\ Program Files \ Java \ jre1.8.0_161')

请记住要根据计算机上的内容来更改“ jre”后的数字。这是link,解释了JDK和JRE之间的区别。

答案 6 :(得分:0)

尝试下载RStudio每日版本:http://dailies.rstudio.com

在我尝试了其他所有内容之后,它在第二次尝试时起作用了(更新了R,Rstudio,Java,重新安装了rJava一百万次,并遵循了所有stackoverflow建议)。

提示来自RStudio support forums

  

RStudio确实无法读取通常由R提供的一些启动信息......

     

我们在最新的日常版本中有一个潜在的解决方案   RStudio - 如果您愿意,可以尝试下载和测试   http://dailies.rstudio.com