无法在 R 上加载 rJava

Unable to load rJava on R

提问人:Abhishek Bhatia 提问时间:12/27/2014 最后编辑:Abhishek Bhatia 更新时间:5/3/2022 访问量:105896

问:

我希望在 R x64 3.1.2 中加载 rJava。 操作系统- 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 后,该错误似乎出现了。

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

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

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

R rjava

评论

0赞 Dirk Eddelbuettel 12/27/2014
我首先要确保你没有把 32/64 位 Java 和 R 混为一谈。
1赞 DanielPNewman 2/26/2016
我遇到了同样的问题,我可以通过从这里手动下载和安装 64 位版本的 JAVA 来解决它: java.com/en/download/manual.jsp

答:

46赞 qjgods 12/27/2014 #1

用:

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

例如

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

您的环境变量是错误的。

评论

4赞 Abhishek Bhatia 12/28/2014
我只是重新安装了 Java 64 位,它起作用了。我不知道问题可能出在环境变量上。
0赞 user1477388 6/10/2015
我按照 stackoverflow.com/questions/14631494/ 安装了Java JDK这让我更接近于解决...
6赞 user1477388 6/10/2015
编辑:我还必须将新的JDK添加到我的环境PATH中,并在RStudio中取消设置Sys.setenv(JAVA_HOME='')
2赞 userJT 4/30/2016
后向散号必须为双倍
0赞 Rγσ ξηg Lιαη Ημ 雷欧 8/20/2017
设置路径并重新启动 Rgui.exe 即可。
23赞 manoj 5/6/2015 #2

我遇到了类似的错误:

> 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_HOMEJDKJRE

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

我现在可以加载并进入.rJavaxlsxR

9赞 Sunny 10/25/2016 #3

我遇到了类似的问题,花了一整天的时间来解决它。 虽然我的电脑、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赞 lebelinoz 5/12/2017 #4

每次 Java 将更新偷偷带到我的 PC 上时,我都会收到此错误。当我去的时候:

Sys.getenv("Path")

我在输出中发现了一些东西,看起来像

C:\\Program Files \\Java\\jre1.8.0_112\\bin\\server\\

其中子文件夹的最后几位数字已过时。jre

若要在所有位置修复此问题,可能需要编辑 Windows 环境变量。为此,请转到WINDOWS + X键,从菜单中选择命令提示符(管理员),然后键入

rundll32.exe sysdm.cpl,EditEnvironmentVariables

在命令框中。这将调用此对话框,其中包含 PATH 变量(和其他系统变量)的编辑权限:

enter image description here

用于编辑长环境变量的 Windows 界面有点笨拙,所以在我单击编辑后...我喜欢将生成的混乱路径复制粘贴到Notepad .exe,在那里完成工作,然后复制粘贴回来。

5赞 user2162611 5/23/2017 #5

遇到类似的错误消息。

尝试了此处列出的几个步骤。

  1. 设置 Env。可变,JAVA_HOME。=> 没用。
  2. 尝试安装 rJava +> 不起作用 步骤 3、4、5 奏效了。
  3. 更新了我的 Java 64 位版本 8.xx(最新可用)
  4. install.packages(rJava) ==>成功
  5. install.packages(RWeka) ==>成功
2赞 Shery 7/10/2017 #6

有同样的问题:

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

我安装了 java,即 Java 文件夹在 .32-bitC:\Program Files (x86)

我只是继续 Java.com 并下载了它的位置,并在输入的末尾添加了它的位置,我现在可以加载了。(安装要求我摆脱我所做的旧版本)64-bit JavaPATHSystem variablesrJava

0赞 havi 3/9/2018 #7

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

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

提示来自 RStudio 支持论坛

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

我们在最新的每日版本中有一个潜在的修复程序 RStudio -- 如果您愿意,可以尝试从 http://dailies.rstudio.com 下载和测试

1赞 Bowen Chen 8/24/2018 #8

这可能是指针设置的问题。如果您没有 JDK 但有 JRE,您可能需要这样做:JAVA_HOME

Sys.setenv(JAVA_HOME='C:\\Program Files\\Java\\jre1.8.0_161')

请记住根据计算机上的内容更改“jre”后面的数字。这里有一个链接,解释了 JDK 和 JRE 之间的区别。

0赞 KarthikS 5/3/2022 #9

我尝试了上述替代方案,但它对我不起作用。 我在这里找到了解决方案。只需设置JAVA_HOME即可使 rJava 库加载正常。

Sys.getenv("JAVA_HOME")
Sys.setenv(JAVA_HOME="")
library(rJava)