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

geo*_*lly 21 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
Run Code Online (Sandbox Code Playgroud)

错误:无法加载包'rJava'

nog*_*pes 26

该错误告诉您,您的注册表中没有条目告诉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
    }
Run Code Online (Sandbox Code Playgroud)

将其复制并粘贴到R窗口中,然后运行它find.java().rJava正在为JavaHome寻找一个条目.如果未列出,则表示注册表中缺少该文件.

您还可以通过在加载库之前设置它来手动设置Java位置的目录:

Sys.setenv(JAVA_HOME='C:\\Your\\Java\\Directory')
library(rJava)
Run Code Online (Sandbox Code Playgroud)

  • 以上是正确的.此外,请注意,您需要匹配R和Java的体系结构(如果您使用的是64位Windows).作为最后的手段,您可以将JAVA_HOME设置为指向Java安装,但通常上述意味着您的Java安装有问题. (7认同)
  • 要跟进@ SimonUrbanek的观点,(并希望能让其他人免受挫折),有必要"手动下载并安装"64位版本的JAVA [来自此处](http://java.com/en/download/ manual.jsp).默认情况下,[主下载页面](http://www.java.com/en/download/win8.jsp)即使在64位计算机上也提供了32位版本[在Windows FAQ中描述和证明](http ://java.com/en/download/faq/java_win64bit.xml) (7认同)
  • @SimonUrbanek:非常有帮助的评论.谢谢!我想知道为什么我的64位R无法找到我新安装的Java,但默认情况下似乎下载了32位Java.您需要在其主页上手动查找64位Java. (3认同)