98

当我键入require(xlsx)xlsx在 R 中加载包时,会显示以下消息:

> require(xlsx)
Loading required package: xlsx
Loading required package: xlsxjars
Loading required package: rJava
Error : .onLoad failed in loadNamespace() for 'rJava', details:
  call: fun(libname, pkgname)
  error: JAVA_HOME cannot be determined from the Registry
Failed with error:  ‘package ‘rJava’ could not be loaded’

我也尝试rJava手动加载包,但收到此错误消息:

require(rJava)
Loading required package: rJava
Error : .onLoad failed in loadNamespace() for 'rJava', details:
  call: fun(libname, pkgname)
  error: No CurrentVersion entry in Software/JavaSoft registry! Try re-installing Java and make sure R and Java have matching architectures.

你对如何解决这个问题有什么建议吗?

4

10 回答 10

136

原因可能与您使用的是64 位操作系统和 R 版本但没有安装具有相同架构的 Java 相关。您需要做的是从此页面下载 Java 64 位:https ://www.java.com/en/download/manual.jsp

之后,只需尝试重新加载xlsx包。您不需要重新启动 R。

于 2014-05-19T16:13:17.137 回答
9

这是因为您的计算机中缺少任何一个 Java 版本(32 位/64 位)。尝试安装这两个 Jdks 并运行代码。
安装 Jdks 后打开 R 并输入代码

system("java -version")

这将为您提供已安装的 Jdk 版本。然后尝试加载 rJava 包。这对我有用。

于 2015-03-04T07:19:40.547 回答
7

我有一个类似的问题,对我有用的是设置 JAVA_HOME。我首先在 R 中厌倦了它:

Sys.setenv(JAVA_HOME = "C:/Program Files/Java/jdk1.8.0_101/")

当它真正起作用时,我将其设置为

系统属性 -> 高级 -> 环境变量

通过添加一个新的系统变量。然后我重新启动了 R/RStudio,一切正常。

于 2016-10-11T20:00:51.023 回答
6

我有一个类似的问题。这是由于依赖包'rJava'引起的。这个问题可以通过重定向 R 使用不同的JAVA_HOME.

if(Sys.getenv("JAVA_HOME")!=""){
    Sys.setenv(JAVA_HOME="")
}
library(rJava)

这对我有用。

于 2014-06-26T21:35:37.603 回答
4

如果您在 RStudio 中出现此错误,请使用上面 Lauren 的环境代码,并在工具、全局选项中将您的 R 版本更改为 32 位版本。如果您有较新版本,则应该有 32 位和 64 位 R 选项。这将需要重新启动 R,并限制您的内存选项。不过,不需要安装 64 位版本的 jre。

于 2017-03-15T17:31:17.177 回答
3

您可以使用的替代包是readxl. 这个包不需要外部依赖。

于 2016-10-12T02:46:59.363 回答
1

对于读取/写入 excel 文件,您可以使用:

  • readxlwritexl包和写包
  • openxlsx读写包

使用xlsxand XLConnect(使用 rjava)如果您有大文件,您将面临内存错误

于 2021-02-01T09:25:24.000 回答
0

如果你在 macOS 上遇到这个问题,这里没有简单的方法:( 特别是,当你想使用 R3.4 时。我已经在那里了。

R 3.4、rJava、macOS 甚至更乱

对于 R3.3,它更容易一些(R3.3 是使用不同的编译器编译的)。

R、Java、rJava 和 macOS 历险记

于 2017-08-14T16:25:09.943 回答
0

对我来说,我只需要确保 Java 是 64 位的(以匹配 R)。

以下是我下载和安装 64 位 Java 的方法:

  1. 转至:https ://www.java.com/en/download/manual.jsp
  2. 单击“Windows 脱机(64 位)”
  3. 安装它(您可能需要找到下载的文件并双击它,或者它可能会自动安装)
  4. 关闭并重新打开您的 R/RStudio 会话
  5. 一切都会按预期工作!
于 2021-12-20T23:40:14.377 回答
0

链接中的答案解决了我的问题。

在解决之前,我尝试将 JAVA_HOME 添加到 Windows 环境中。它解决了这个错误,但产生了另一个问题。上述链接中的解决方案解决了此问题,而不会产生其他问题。

于 2016-03-07T12:19:47.603 回答