You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Repast Simphony命令行批量运行的Java/Groovy配置问题求助

Repast Simphony命令行批量运行依赖问题

问题描述

在Windows系统下尝试跳过GUI启动Repast Simphony批量任务,已通过GUI生成配置属性文件。按照官方文档步骤,将配置文件与batch_runner.jar放在同一目录,使用JDK 11执行命令:

"C:\Program Files\Java\jdk-11\lib\java.exe" -jar batch_runner.jar -hl -r -c batch_configuration.properties

执行后触发Java错误:

INFO  10:15:24,983 repast.simphony.batch.gui.HeadlessMain - Writing batch run config file to: <my_repast_directory>\output\config.props
java.lang.reflect.InvocationTargetException
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at repast.simphony.batch.standalone.StandAloneMain.run(StandAloneMain.java:207)
        at repast.simphony.batch.standalone.StandAloneMain.main(StandAloneMain.java:276)
Caused by: java.lang.NoClassDefFoundError: groovy/lang/GroovyObject
        at repast.simphony.batch.gui.HeadlessMain.createAntProject(HeadlessMain.java:87)
        at repast.simphony.batch.gui.HeadlessMain.run(HeadlessMain.java:66)
        at repast.simphony.batch.gui.HeadlessMain.main(HeadlessMain.java:310)
        ... 6 more
Caused by: java.lang.ClassNotFoundException: groovy.lang.GroovyObject
        at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:476)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:593)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
        ... 9 more

已确认GUI启动批量运行正常,仅命令行执行出现问题。疑问:在Eclipse环境外运行Repast Simphony批量任务时,是否需要额外配置Java关联Groovy能力?

解决方案

是的,命令行运行必须手动配置Groovy及其他依赖,原因如下:
Repast Simphony的GUI或Eclipse内运行模式会自动加载所有依赖库(包括Groovy相关jar包),但单独运行batch_runner.jar时,JVM仅加载该jar包内的类,无法自动识别外部依赖,这就是groovy.lang.GroovyObject找不到的核心原因。

具体操作步骤:

  • 找到Repast Simphony安装目录的lib文件夹,提取所有Groovy相关jar包(如groovy-all-*.jar)。
  • 将这些jar包复制到batch_runner.jar所在目录,或通过命令行-cp参数指定其完整路径。
  • 修改执行命令,修正Java路径并添加classpath配置,示例:
"C:\Program Files\Java\jdk-11\bin\java.exe" -cp "batch_runner.jar;groovy-all-3.0.9.jar;其他依赖jar包路径" repast.simphony.batch.gui.HeadlessMain -hl -r -c batch_configuration.properties

注意:原命令中Java路径错误,正确路径为jdk-11\bin\java.exe;Windows系统下classpath用分号;分隔多个jar包,Linux/macOS则用冒号:。

  • 确保所有Repast运行必需的依赖jar包都被加入classpath,避免后续出现其他类缺失的错误。

内容的提问来源于stack exchange,提问作者WLeo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 15:22:42