首页 > 解决方案 > 在 Linux 集群错误上使用 Rscript 无头加载 NetLogo

问题描述

我在 Linux 系统集群(大型计算机)上运行 Netlogo,我使用的是旧版本的 Netlogo-5.2.0,带有 R 版本 3.5 及其 RPackages(RNetLogo-1.0-1 和 rJava,它们与 Netlogo-5.2 兼容。 0)。当我使用命令时

NLStart(nl.path, gui=F, nl.obj=my.netlogo1) #Creates an instance of NetLogo    

然后它给了我这个错误:

Warning message: In `[<-`(`*tmp*`, nl.obj, value = nlo)

当我开始加载模型时

NLLoadModel(model.path, nl.obj=my.netlogo1)

它给了我这个错误:

Exception in thread "JobThread" java.lang.LinkageError: loader (instance of  sun/misc/Launcher$AppClassLoader): attempted  duplicate class definition for name: "scala/Function0$mcV$sp"
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at org.nlogo.job.JobThread.run(JobThread.scala:76)
Exception in thread "JobThread" java.lang.LinkageError: org/nlogo   
/job/JobThread$$anonfun$run$1
at org.nlogo.job.JobThread.run(JobThread.scala:76)
[1] "Java-Object{java.lang.OutOfMemoryError: PermGen space}"
Error in NLLoadModel(model.path, nl.obj = my.netlogo1) : 
Execution halted

任何人都有任何想法这个问题是什么以及如何解决?谢谢

标签: javarnetlogo

解决方案


推荐阅读