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

Java 17+环境下Repast Simphony批量运行如何传递add-opens参数?

解决Repast Simphony批量运行时传递JVM --add-opens参数的问题

针对你遇到的Repast 2.10.0在Java 17环境下批量运行时JVM参数无法传递的问题,可以通过以下几种方式解决:

1. 直接修改批量运行脚本

Repast生成的批量运行脚本(Windows下为.bat,Linux/macOS下为.sh)中,找到启动Java的命令行,手动添加所需的--add-opens参数。
比如原脚本中的启动命令:

java -jar repast-simphony-batch-runner.jar [其他参数]

修改为:

java --add-opens=java.xml/com.sun.org.apache.xpath.internal.objects=ALL-UNNAMED -jar repast-simphony-batch-runner.jar [其他参数]

如果有多个需要开放的模块包,直接追加参数即可,比如:

java --add-opens=java.xml/com.sun.org.apache.xpath.internal.objects=ALL-UNNAMED --add-opens=另一个模块/包=ALL-UNNAMED -jar repast-simphony-batch-runner.jar [其他参数]

2. 通过项目配置文件指定VM参数

找到项目根目录下的batch-run.properties文件(如果没有可以手动创建),添加以下配置:

vmargs=--add-opens=java.xml/com.sun.org.apache.xpath.internal.objects=ALL-UNNAMED

如果需要多个参数,用空格分隔:

vmargs=--add-opens=java.xml/com.sun.org.apache.xpath.internal.objects=ALL-UNNAMED --add-opens=其他模块/包=ALL-UNNAMED

Repast的批量运行器会读取这个配置文件中的vmargs参数,传递给JVM启动命令。

3. IDE中配置批量运行的VM参数(若使用IDE启动)

如果你是通过Eclipse或IntelliJ IDEA等IDE启动批量运行模式:

  • 打开对应的运行配置(Run Configuration)
  • 找到VM arguments输入框
  • 将--add-opens=java.xml/com.sun.org.apache.xpath.internal.objects=ALL-UNNAMED添加到参数列表中
  • 保存配置后重新启动批量运行

补充说明

Java 17的模块系统封装比Java 11更严格,所以必须显式通过--add-opens开放内部包给未命名模块;而Repast的GUI模式和批量运行模式的参数传递逻辑相互独立,GUI中配置的VM参数不会自动同步到批量运行环节,因此需要单独配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 06:34:54