由于rJava而试图在R中加载一个包的问题
当我inputrequire(xlsx)
来加载R中的软件包xlsx
时,会显示以下消息:
> 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.
你有什么build议如何解决这个问题?
原因可能与您正在使用64位操作系统和R版本的事实有关,但是没有使用相同的体系结构安装Java。 你必须做的是从这个页面下载Java 64位: https : //www.java.com/en/download/manual.jsp
之后,只是尝试重新加载xlsx
包。 你不需要重新启动R.
它是因为你的电脑中缺less一个Java版本(32位/ 64位)。 尝试安装两个Jdks并运行代码。
在安装Jdks之后,打开R并input代码
system("java -version")
这会给你安装的Jdk的版本。 然后尝试加载rJava包。 这对我有效。
我有一个类似的问题是我设置JAVA_HOME。 我先在R里累了:
Sys.setenv(JAVA_HOME = "C:/Program Files/Java/jdk1.8.0_101/")
当它实际上工作,我通过添加一个新的系统variables设置在系统属性 – >高级 – >环境variables。 然后我重新启动R / RStudio,一切正常。
我有一个类似的问题。 这是由于依赖包“rJava”造成的。 这个问题可以通过重新指导R使用不同的JAVA_HOME
。
if(Sys.getenv("JAVA_HOME")!=""){ Sys.setenv(JAVA_HOME="") } library(rJava)
这对我有效。
如果您在RStudio中有这个错误,请使用上面的Lauren环境代码,并在Tools,Global Options中将您的R版本更改为32位版本。 如果你有一个更新的版本,应该有32位和64位的R选项。 这将需要重新启动R,并限制您的内存选项。 不过,安装64位版本的jre并不是必需的。
在链接的答案解决了我的问题。
在解决之前,我尝试在Windows环境中添加JAVA_HOME。 它解决了这个错误,但又造成了另一个问 上述链接中的解决scheme可解决此问题,而不会产生其他问题。
您可以使用的替代软件包是readxl 。 这个包不需要外部依赖。
如果你在macOS上遇到这个问题,这里就没有简单的方法:(特别是当你想使用R3.4的时候,我已经在那里了)
R 3.4,rJava,macOS甚至更糟糕;)
对于R3.3来说,稍微简单一点(R3.3是使用不同的编译器编译的)。
R,Java,rJava和macOS冒险