无法在NetLogo中使R-extension工作

时间:2015-10-26 12:20:48

标签: java netlogo

我意识到这不是一个真正的编程问题,但我希望这里非常有经验的NetLogo人员可以看到我做错了什么,特别是当你们中的许多人都使用Java而我却没有。

我正在尝试连接R-extension,所以我可以使用R库来做一些棘手的网络工作。我使用的是Windows 7.详细的安装说明描述了必须设置的三个系统变量。我已经这样做并从命令提示符回显它们,R_HOME和JRI_HOME连接到看似合适的目录,我的PATH包含R bin。

variables check

安装说明的第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中添加一些东西,即使文档中没有描述它?

更新

在进一步调查中,有一个名为rsystemcheck的扩展名随r扩展名一起提供。安装[注意其他有此问题的人,只需将文件夹移动到extensions文件夹],我的计算机似乎已安装了(至少)两个版本的Java。这并不奇怪,因为Java更新过程没有真正清理,许多程序安装了运行时的其他版本。

“检查java”工具报告我安装了v1.8.0_51和v1.6.0_45,如果一个是32位而另一个是64位,那么R扩展将无效。

在我的文件系统中徘徊 - v1.8.0_51绝对是32位。我也安装了v1.7.0 64bit(一个新的!)。我无法直接找到v1.6.0_45,但我认为这是NetLogo安装的jre文件夹中的版本。

此外,尝试在没有VM的情况下安装NetLogo并指向我的JRE不起作用,因为NetLogo要求JRE为32位。此外,卸载java并替换为32位版本不起作用,因为我使用64位R。

2 个答案:

答案 0 :(得分:1)

好的,解决了(如果有些不满意的话)。我要离开这里,因为我想其他人使用Windows希望R和NetLogo互相交流。

问题是NetLogo需要32位Java。我不知道R扩展的开发者如何获得64位R的截图,但你真正需要做的是使用32位R。

(1) uninstall 64bit java and instead install 32bit java

(2) add the 32bit R installation

(3) leave the environment variable %R_HOME% as in instructions

(4) add %R_HOME%\bin\i386 to Path

重要的一步是步骤(4),这使得R扩展名找到R的32位安装.R安装目录有两个bin子目录,一个用于64位(x64),一个用于32位(i386)。 Path需要找到32位版本。

步骤(1)可能是可选的 - 我根本没有必要了解java如何处理32位和64位版本的java。

答案 1 :(得分:0)

我认为关键是确保您的所有软件都是 64 位或 32 位。我可以通过使用所有 64 位 R、Java 和 NetLogo 从 NetLogo 成功打开 R。我的工作代码可以在这里找到。 https://raw.githubusercontent.com/tonysdatamodels/netlogo.in.r/main/open%20netlogo%20in%20r。我也在 youtube 视频上有一个简短的视频,解释了如何从 R https://www.youtube.com/watch?v=zWMdaTEPTOc 成功打开 NetLogo。