【问题标题】:Problem loading rJava加载 rJava 时出现问题
【发布时间】:2011-06-27 11:47:31
【问题描述】:

昨天我从我的系统(Win7,64 位)中删除了 R2.11,因为我正在使用 R2.13。

从那以后我收到一条错误消息:

> require(rJava)
Lade nötiges Paket: rJava
Error : .onLoad in loadNamespace() fehlgechlagen, Details:
  Aufruf: rJava
  Fehler: inDL(x, as.logical(local), as.logical(now), ...)

我尝试指定PATH,因为我在互联网上发现它可能与jvm.dll有关:

c:\Rtools\bin;
c:\Rtools\perl\bin;
c:\Rtools\MinGW\bin;
c:\Rtools\MinGW64\bin;
C:\Windows\system32;
%R_HOME%\bin;
C:\Program Files\R\R-2.13.0\bin; 
C:\Program Files\Java\jre6\bin\server

但是我无法解决问题... 我也不能从 win 命令行运行 R(只需输入“R”?)

有什么建议吗?

【问题讨论】:

  • 您无法从命令行加载 R,这意味着您的 R 路径混乱了。您可以重新安装 2.13 或自己修复路径。您将需要它来本地运行 R。如果您从 IDE 运行它,还有其他可能性。你在使用 IDE 吗?如果有,是哪一个?
  • 我大部分时间都在使用 RStudio。但我更愿意修复路径......目前我正在尝试修复它们,但没有成功......
  • 修复了从控制台加载 R 的问题(路径:“C:\Program Files\R\R-2.13.0\bin\x64”)。但是 rJava 仍然没有加载。
  • %R_HOME%\bin 是可疑的。此外,从 2.12 开始,bin 中有依赖于体系结构的子目录(bin/x64bin/i386)。我的建议:将C:\Program Files\R\R-2.13.0\bin 更改为C:\Program Files\R\R-2.13.0\bin\x64 并将%R_HOME%\bin 更改为%R_HOME%\bin\x64(并检查%R_HOME% 是否为2.13)。

标签: r


【解决方案1】:

这里有一些关于如何在 Windows 7 64 位上启动和运行 R + rJava 的快速建议。有几种可能性,但大多数都有致命的缺陷。这对我有用:

将 jvm.dll 添加到您的 PATH

rJava,RJava 桥,将需要 jvm.dll,但 R 将无法找到该 DLL。它位于一个文件夹中,如

C:\Program Files\Java\jdk1.6.0_25\jre\bin\server

C:\Program Files\Java\jre6\jre\bin\client

无论您在哪里,将该目录添加到您的 Windows PATH 变量中。 (Windows ->“路径”->“为您的帐户编辑环境变量”-> PATH -> 编辑值。)

您的 PATH 中可能已经有 Java。如果是这样,您应该在与 PATH 中已有的 Java“主”目录相同的 Java“主”目录中找到客户端/服务器目录。

为了安全起见,请确保您的架构匹配。如果您在Program Files 中有 Java,它是 64 位的,因此您应该运行 R64。如果你在Program Files (x86) 中有 Java,那是 32 位的,所以你使用普通的 32 位 R。

从 Windows 菜单重新启动 R

如果 R 正在运行,则退出。

从开始菜单,开始 R / RGUI,RStudio。这非常重要,让 R 接受您的 PATH 更改。

安装 rJava 0.9.2。

早期版本不起作用!镜像不是最新的,因此请访问 www.rforge.net 的源代码:http://www.rforge.net/rJava/files/。注意那里的建议

“Please use

`install.packages('rJava',,'http://www.rforge.net/')`

to install.”

这几乎是正确的。这确实有效:

install.packages('rJava', .libPaths()[1], 'http://www.rforge.net/')

注意标点符号!神秘的“.libPaths()[1]”只是告诉 R 将包安装在主库目录中。出于某种原因,将值留空是行不通的,即使它应该是默认值。

【讨论】:

  • 感谢您的指导。它对我有用:) +1
【解决方案2】:

我终于解决了问题:

rJava 似乎在 ~\Java\jre6\bin\client 中搜索 jvm.dll。 但是我的系统上不存在这个文件夹(jvm.dll 在 ~\bin\server 中)。

所以我只是在文件夹 ~\bin\client\ 中复制了 jvm.dll 并将其添加到路径中。

现在一切正常!

【讨论】:

  • Java 7 仍然失败。我创建了一个“client”文件夹(那里没有),从“server”复制 jvm.dll 并将 jre7\bin\client 添加到小路。仍然是“%1 不是有效的 Win32 应用程序”并且无法加载 rJava.dll”
  • 你有安装JDK吗?
【解决方案3】:

我的问题解决了

install.packages("SqlRender",INSTALL_opts="--no-multiarch")

这是一个依赖于 rJava 的包,所有建议都告诉我修复 Java 安装。但解决方案是使用简单地忘记 i386 架构的安装选项。 (也适用于非 CRAN 的 drat 库和包)

【讨论】:

    【解决方案4】:

    在我的情况下,安装正确版本的 Java 解决了我的问题。 我安装了 64x bit java,因为我使用的是 64x bit R 版本。

    【讨论】:

      【解决方案5】:

      我通过以下步骤解决了它

      • 设置我的环境Sys.setenv(JAVA_HOME='C:\\Program Files (x86)\\Java\\jre6')
      • 从安装包手动安装 rJava 包(即使这样也可以: install.packages('rJava', .libPaths()[1], 'http://www.rforge.net/'))
      • 库(rJava)

      【讨论】:

        【解决方案6】:

        我解决了这个问题如下。我已经尝试了2天。 Windows 7 用户不要在环境变量中写入 ...\bin\x64。 相反,如下定义路径。 JAVA_HOME "C:\Program Files\Java\jre1.8.0_251" R_HOME C:\Program Files\R\R-3.5.3

        【讨论】:

          【解决方案7】:

          这可能是由于 RStudio 和 Java 版本之间的冲突。如果你已经安装了 64 位的 java 并且 RStudio 在 32 位模式下运行,你可能会遇到这样的问题。作为一种解决方案,您可以在 RStudio 的 Tools-> Global Options-> General 部分中更改 32-64 位选择。 您可以找到详细信息here

          【讨论】:

            【解决方案8】:
            • 在 RStudio 中输入 .LibPaths()
            • 这将为您提供库所在的 Windows 系统中的路径
            • 去那里删除 rJava。如果它正在被 Java 应用程序使用,请在任务管理器中杀死所有 Java 程序。

            • 进入计算机和属性,点击更改环境变量

            • 将 JAVA_HOME 和所有与 Java 相关的路径编辑到最新安装的 Java 所在的路径并保存。

            【讨论】:

              猜你喜欢
              • 2013-06-26
              • 2012-11-04
              • 1970-01-01
              • 1970-01-01
              • 2011-11-07
              • 2015-05-03
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多