【发布时间】:2016-01-25 13:06:12
【问题描述】:
我意识到这并不是一个真正的编程问题,但我希望这里一位经验丰富的 NetLogo 人员能够看到我做错了什么,尤其是你们中的许多人使用 Java 工作而我没有。
我正在尝试连接 R 扩展,以便我可以使用 R 库来做一些棘手的网络工作。我使用的是 Windows 7。详细的安装说明描述了三个必须设置的系统变量。我已经这样做了,并从命令提示符处回显它们,R_HOME 和 JRI_HOME 连接到似乎是适当的目录,并且我的 PATH 包括 R bin。
安装说明的第 4 步从命令行打开一个 R 终端,并且工作正常。同样,从该终端加载 rJava 库(即步骤 6,输入 library(rJava))会返回相应的消息。检查 java 版本(第 9 步)返回适当的 64 位响应,与文档中的完全相同,只是我的 vm 版本更新。
一起测试(第 12 步)打开 NetLogo,我输入 extensions [r],但勾选勾号立即将其关闭。根据文档,这是 R_HOME 和 PATH 的错误,但我看不到它。在命令行中,我收到一个错误Cannot find JRI native library! Please make sure that the JRI native library is in a directory listed in java.library.path,然后是许多 java 错误。
是否有我忘记设置的环境变量?即使文档中没有描述,我是否需要向 java.library.path 添加一些内容?
更新
经过进一步调查,r 扩展附带了一个名为 rsystemcheck 的扩展。安装那个[注意其他有这个问题的人,只需将文件夹移动到扩展文件夹中],看来我的电脑(至少)安装了两个版本的 Java。这并不奇怪,因为 Java 更新过程并没有真正清理干净,而且许多程序安装了额外版本的运行时。
“检查 java”工具报告说我安装了 v1.8.0_51 和 v1.6.0_45,如果一个是 32 位,另一个是 64 位,那么 R 扩展将不起作用。
在我的文件系统中到处乱逛 - v1.8.0_51 绝对是 32 位的。我还安装了 v1.7.0 64 位(一个新的!)。我直接找不到v1.6.0_45,但我认为这是NetLogo安装的jre文件夹中的版本。
此外,尝试在没有 VM 的情况下安装 NetLogo 并指向我的 JRE 不起作用,因为 NetLogo 要求 JRE 为 32 位。此外,卸载java并替换为32位版本不起作用,因为我使用的是64位R。
【问题讨论】:
-
JenB,我认为您是这里经验丰富的 NetLogo 人之一!如果您没有得到答案,netlogo-devel Google 小组可能是合适的,尽管我知道这不是一个开发问题。
-
我很少使用 Windows。会不会是文件权限问题,或者类似的问题?
-
感谢火星。不应该是文件权限问题,我希望这是一个不同的错误消息(类似于拒绝而不是找不到)。我知道其他人在连接到 R 时遇到了问题。有一个非常相似的 Mac 问题stackoverflow.com/questions/27190975/…,对于不知道环境变量是什么的人来说安装会很困难,所以有些人只是没有完成所有步骤,但我的变量看起来不错。我对 jar 文件完全没有经验。
-
您可以尝试通过电子邮件将此问题的链接发送给 R 扩展的作者。我不确定他们是否在这里闲逛。
-
针对 java 版本不兼容问题更新