我一直在使用RNetLogo和NetLogo 5.2.1而没有麻烦。现在我使用的是NetLogo 5.3,我收到了这个错误:
> library(RNetLogo)
> nl.path <- "/Applications/NetLogo 5.3/"
> NLStart(nl.path, gui = FALSE)
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
> sessionInfo()
R version 3.2.2 (2015-08-14)
Platform: x86_64-apple-darwin13.4.0 (64-bit)
Running under: OS X 10.11.2 (El Capitan)
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] RNetLogo_1.0-1 igraph_1.0.1 rJava_0.9-8
loaded via a namespace (and not attached):
[1] magrittr_1.5
关于问题可能是什么的任何想法?
答案 0 :(得分:3)
将您的行nl.path <- "/Applications/NetLogo 5.3/"
更改为nl.path <- "/Applications/NetLogo 5.3/app"
NetLogo已更改其目录结构; netlogo jar文件现在位于“app”子目录中。
您可能还需要检查作为RNetLogo安装的一部分设置的环境变量。
答案 1 :(得分:2)
对于NetLogo 5.3.1版,如果您想从Mac上的R以无头模式启动NetLogo,则以下情况有效:
首先,在加载RNetLogo库之前,执行
Sys.setenv(NOAWT=1)
然后,执行以下命令:
library(RNetLogo)
setwd("/Applications/NetLogo 5.3.1/Java")
nl.path <- getwd()
NLStart(nl.path, gui = FALSE)