【问题标题】:How can I install rJava for use with 64bit R on a 64 bit Windows computer?如何在 64 位 Windows 计算机上安装 rJava 以与 64 位 R 一起使用?
【发布时间】:2012-02-02 21:27:55
【问题描述】:

我安装了 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”

【问题讨论】:

    标签: r iplots


    【解决方案1】:

    错误是告诉您注册表中没有条目告诉 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)
    

    【讨论】:

    • 以上是正确的。此外,请注意,您将需要 R 和 Java 的匹配架构(如果您在 64 位 Windows 上)。作为最后的手段,您可以将 JAVA_HOME 设置为指向您的 Java 安装,但通常上述情况意味着您的 Java 安装有问题。
    • JDK 安装在我的 pc.java -version java version "1.6.0_20" Java(TM) SE Runtime Environment (build 1.6.0_20-b02) Java HotSpot(TM) Client VM (build 16.3) -b01,混合模式,共享)
    • 我在回答中做了一些补充。
    • @SimonUrbanek:非常有帮助的评论。谢谢!我想知道为什么我的 64 位 R 找不到我新安装的 Java,但似乎默认下载的是 32 位 Java。您需要在其主页上手动查找 64 位 Java。
    • 为了跟进@SimonUrbanek 的观点,(并希望让其他人免于沮丧),有必要“手动下载并安装”64 位版本的 JAVA from here。默认情况下,main download page 即使在 64 位机器上也提供 32 位版本 described and justified in the Windows FAQ
    【解决方案2】:

    如果您像我一样没有安装 64 位 Java 的管理员权限,只需打开 32 位 R,它应该可以在您的 64 位 PC 上正常工作,因为问题的一部分似乎是 rJava 库函数调用嵌入式 Java函数/例程,它们可能仅设计用于与 Excel/Windows 的 32 位界面,并且当时的任务可能太大而无法更改所有内容。

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

        这里的任何 Linux 用户,运行命令:

        sudo R CMD javareconf

        这通常需要在更新系统 Java 安装后运行, 按照建议here

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-05-19
          • 2016-10-12
          • 1970-01-01
          • 2014-01-20
          • 2010-12-03
          • 2012-06-13
          • 2015-02-28
          相关资源
          最近更新 更多