RNetLogo类错误

时间:2017-08-15 20:27:53

标签: java r netlogo

我有一周的干净安装OS X(10.12.6),安装了新的R(3.4.1),rJava(0.9-8)和Oracle Java 8(1.8.0_144-b01)。我无法启动RNetLogo(1.0-4)(使用NLStart())。另外,我的Netlogo版本是6.0.1。

我正在运行的代码是:

library(RNetLogo)

NLStart("/Applications/NetLogo 6.0.1/Java", 
  gui = FALSE, nl.jarname = "netlogo-6.0.1.jar")

我遇到的错误类似于许多其他人在此版本和之前版本的NetLogo和RNetLogo上遇到的错误(示例:12和& 3)。我已经尝试了在每个链接(上面)上推荐的所有修复程序,但没有找到一个让我超过此错误。

以下是错误消息:

java.lang.NoClassDefFoundError: org/nlogo/workspace/Controllable  
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:348)  
Caused by: java.lang.ClassNotFoundException 
    at RJavaClassLoader.findClass(RJavaClassLoader.java:383)  
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)  
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)  
    ... 2 more

上面的一个消息线程中,他们认为这是RNetLogo中的一个错误。这可能是真的,但我找不到与此软件包关联的活动消息板或错误/问题列表( 正在定期维护)。

1 个答案:

答案 0 :(得分:2)

我联系了RNetLogo软件包维护者(Jan Thiele),他为我提供了一个基于R的替代启动程序,用于使用NetLogo GUI(来自德累斯顿大学的Robert Schlicht)。

以下是他们提供的启动过程的简化版本。要使其正常运行,您可能需要安装(或重新安装)最新版本的软件包:rJavaJGRRNetLogo

本质上,该过程使用基本R或RStudio启动不同的R环境(R-JGR的Java GUI), 在Mac上与NetLogo一起工作。

以下是我如何启动JGR(您可能需要调整JDK版本号):

#Load Java
 dyn.load("/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/server/libjvm.dylib")
JGR::JGR() #Start JGR

然后在Java GUI for R(JGR)中启动NetLogo:

library(RNetLogo)
NLStart("/Applications/NetLogo 6.0.1/Java", nl.jarname = "netlogo-6.0.1.jar")

注意:

  • NLStart的nl.path参数需要“完整”路径。
  • 最近发布了NetLogo 6.0.2,这个程序似乎也适用于该版本。