在NetLogo中编译NW扩展

时间:2016-04-05 19:58:19

标签: scala netlogo

我正在尝试从git克隆后编译NW扩展,我有这个堆栈跟踪:

NW-Extension git:(5.x) sbt clean package
[info] Loading global plugins from /Users/digitaldust/.sbt/0.13/plugins
[info] Updating {file:/Users/digitaldust/.sbt/0.13/plugins/}global-plugins...
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[info] Done updating.
[info] Loading project definition from /Users/digitaldust/Desktop/LOCAL/NW-Extension/project
[info] Updating {file:/Users/digitaldust/Desktop/LOCAL/NW-Extension/project/}nw-extension-build...
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[info] Done updating.
[info] Set current project to nw-extension (in build file:/Users/digitaldust/Desktop/LOCAL/NW-Extension/)
[success] Total time: 0 s, completed 5-apr-2016 18.18.47
[info] Updating {file:/Users/digitaldust/Desktop/LOCAL/NW-Extension/}nw-extension...
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[info] Done updating.
[info] Compiling 42 Scala sources to /Users/digitaldust/Desktop/LOCAL/NW-Extension/target/scala-2.9.2/classes...
[error] error while loading CharSequence, class file '/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home/jre/lib/rt.jar(java/lang/CharSequence.class)' is broken
[error] (bad constant pool tag 18 at byte 10)
[error] error while loading AnnotatedElement, class file '/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home/jre/lib/rt.jar(java/lang/reflect/AnnotatedElement.class)' is broken
[error] (bad constant pool tag 18 at byte 76)
[error] error while loading ConcurrentMap, class file '/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home/jre/lib/rt.jar(java/util/concurrent/ConcurrentMap.class)' is broken
[error] (bad constant pool tag 18 at byte 61)
[error] error while loading Comparator, class file '/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home/jre/lib/rt.jar(java/util/Comparator.class)' is broken
[error] (bad constant pool tag 18 at byte 20)
[error] /Users/digitaldust/Desktop/LOCAL/NW-Extension/src/main/org/nlogo/extensions/nw/algorithms/CentralityMeasurer.scala:19: could not find implicit value for parameter num: Numeric[Double]
[error]         turtle -> (lastScore + (inNeighbors(turtle) map last).sum)
[error]                                                               ^
[error] /Users/digitaldust/Desktop/LOCAL/NW-Extension/src/main/org/nlogo/extensions/nw/algorithms/ClusteringMetrics.scala:21: could not find implicit value for parameter num: Numeric[Int]
[error]       neighborLinkCounts.sum.toDouble / (neighbors.size * (neighbors.size - 1))
[error]                          ^
[error] error while loading Entry, class file '/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home/jre/lib/rt.jar(java/util/Map$Entry.class)' is broken
[error] (bad constant pool tag 18 at byte 10)
[error] /Users/digitaldust/Desktop/LOCAL/NW-Extension/src/main/org/nlogo/extensions/nw/jung/io/GraphMLImport.scala:170: value getKey is not a member of java.util.Map.Entry[edu.uci.ics.jung.io.graphml.Metadata.MetadataType,java.util.List[edu.uci.ics.jung.io.graphml.Key]]
[error]             .asScala.map(entry => entry.getKey -> entry.getValue.asScala).toMap
[error]                                         ^
[error] 8 errors found
[error] (compile:compile) Compilation failed
[error] Total time: 8 s, completed 5-apr-2016 18.18.55

知道这里出了什么问题吗?

1 个答案:

答案 0 :(得分:1)

虽然NetLogo 5.3.x现在可以在Java 8上运行,但它仍然需要使用Java 6 JDK进行编译(扩展也是如此)。从您的输出结果来看,您似乎正在尝试针对jdk1.8.0_65进行编译。

解决方案应该像将JAVA_HOME环境变量指向Java 6 JDK的位置一样简单。如果您不想永久修改JAVA_HOME,可以使用env命令运行sbt,例如:

env JAVA_HOME=/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/home ./sbt clean package