我已经重新安装了一周前的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上遇到的错误(示例:1,2和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中的一个错误。 这可能是真的,但我找不到与此包相关的活动留言板或错误/问题列表(它正在定期维护(。
我联系了RNetLogo软件包维护者(Jan Thiele(,他为我提供了一个使用NetLogo GUI的基于R的替代启动过程(归功于德累斯顿大学的Robert Schlicht(。
以下是他们提供的启动过程的简化版本。 要使其正常工作,您可能需要安装(或重新安装(最新版本的软件包:rJava
、JGR
和RNetLogo
。
从本质上讲,该过程使用基本R或RStudio来启动不同的R环境(Java GUI for R - JGR(,该环境在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 最近发布,此过程似乎也适用于该版本。