如何在64位Windows计算机上安装rJava以与64位R一起使用?

时间:2012-02-02 21:27:55

标签: r iplots

我安装了iplots和rjava包。当我这个库(iplots),我得到以下错误。我的电脑上安装了JDK。

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

错误:无法加载包'rJava'

4 个答案:

答案 0 :(得分:25)

错误告诉您注册表中没有条目告诉R您的计算机上有Java的位置。您的注册表损坏,但更有可能您没有安装Java。您可以安装Java Runtime Environment或Java Development Kit。

(You can download Java here.)

如果您安装了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)

答案 1 :(得分:2)

如果像我这样你没有安装64位Java的管理员权限,只需打开32位R就可以在你的64位PC上运行正常,因为问题的一部分似乎是rJava库函数调用了嵌入式Java函数/例程,可能只是为Excel / Windows的32位接口而设计的,当时可能有太大的任务来更改所有内容。

答案 2 :(得分:0)

link中的回答解决了我的问题。

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

答案 3 :(得分:0)

此处有任何Linux用户,运行命令:

sudo R CMD javareconf

通常需要在更新系统Java安装后运行, 根据建议here