由于rJava,尝试在R中加载程序包时出现问题


93

当我键入require(xlsx)以将程序包加载到xlsxR中时,显示以下消息:

> 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
尝试安装rJava...阅读此内容
agstudy 2013年

6
哪个平台?如果Windows那么可能会有帮助。
dardisco

同时,您的问题,您可以先保存.xlsx文件为csv,然后用read.csv,而不是试图在.xlsx文件读取
generic_user

2
如果最后列出的答案(目前为16票)为您解决了问题,请将答案标记为已接受。
Slak 2015年

我也遇到了这个问题,但是通过使用Hadley Wickham的readxl软件包来解决了这个问题。关于这里更多的讨论- 不能在r和外观安装libraryxlsx一种替代

Answers:


123

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

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


2
(+1)我不确定R的消息是否完全指出这是问题所在,但我的情况确实如此!可以肯定的是,您可以检查一下。如果您正在运行64位OS和64位R,请运行命令行并尝试java -d64 version。如果您使用的是64位Java,则可能是系统路径问题。
AdamO '16

3
你是说java -d64 -version
哈里森

8

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

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

当它真正起作用时,我通过添加新的系统变量,在系统属性->高级->环境变量中对其进行设置。然后,我重新启动R / RStudio,一切正常。


7

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

system("java -version")

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



4

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



2

我想我找到了解决该问题的方法,因为我遇到了同样的问题!

我的修复是安装32位和64位JRE(Java运行时环境)版本8更新181。(我需要32位用于另一个应用程序,但是您的修复很可能只是自己重新安装64位。)


1

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

在解决之前,我尝试通过将JAVA_HOME添加到Windows环境中来进行尝试。它解决了此错误,但又造成了另一个问题。上面链接中的解决方案可以解决此问题,而不会造成其他问题。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.