该错误告诉您注册表中没有条目告诉 R Java 在您的机器上的位置。您的注册表已损坏,但更有可能您尚未安装 Java。您可以安装 Java Runtime Environment 或 Java Development Kit。
(您可以在此处下载 Java。)
如果您安装了 Java,请尝试重新安装它。这应该将条目放回您的注册表中。
如果这不起作用,您可以开始查看 R 正在寻找您的注册表条目的确切位置。rJava 用来查找 Java 的函数在 rJava:::.onLoad 函数中。在该函数中有一个名为 find.java 的子函数。我在这里复制内容:
find.java <- function() {
for (root in c("HLM", "HCU")) for (key in c("Software\\JavaSoft\\Java Runtime Environment",
"Software\\JavaSoft\\Java Development Kit")) {
hive <- try(utils::readRegistry(key, root, 2),
silent = TRUE)
if (!inherits(hive, "try-error"))
return(hive)
}
hive
}
将其复制并粘贴到您的 R 窗口中,然后运行它find.java()
。rJava 正在寻找 JavaHome 的条目。如果未列出,则您的注册表中缺少它。
您还可以通过在加载库之前设置它来手动设置 Java 位置的目录:
Sys.setenv(JAVA_HOME='C:\\Your\\Java\\Directory')
library(rJava)