我在 Repast 中建立了一个模拟,旨在模拟登机的人。我希望多次运行它,以获得各种方法登机所需的平均时间。正常运行时模型工作得很好,模型输出也工作得很好。但是,当我尝试进行批量运行时,它在控制台中给出了此错误,并且它给出的最终模型输出只是一个空文件。另外,控制台会给出以下消息:
警告 [SwingWorker-pool-2-thread-2] 17:40:56,274 OutputFinder - 在/var/folders/nh/8k546jq14l5gnwkjgxvch8180000gn 中找不到匹配 glob:{**/,}ModelOutput*.batch_param_map.txt 的模型输出/T/simphony_model_1651246794058/instance_2
警告 [SwingWorker-pool-2-thread-2] 17:40:56,274 OutputFinder - 在/var/folders/nh/8k546jq14l5gnwkjgxvch8180000gn/T 中找不到匹配 glob:{**/,}ModelOutput*.txt 的模型输出/simphony_model_1651246794058/instance_2
警告 [SwingWorker-pool-2-thread-2] 17:40:56,275 OutputFinder - 在/var/folders/nh/8k546jq14l5gnwkjgxvch8180000gn 中找不到匹配 glob:{**/,}ModelOutput*.batch_param_map.txt 的模型输出/T/simphony_model_1651246794058/instance_1
警告 [SwingWorker-pool-2-thread-2] 17:40:56,275 OutputFinder - 在/var/folders/nh/8k546jq14l5gnwkjgxvch8180000gn/T 中找不到匹配 glob:{**/,}ModelOutput*.txt 的模型输出/simphony_model_1651246794058/instance_1
据我观察,模型正常运行却无法批量运行的原因可能有四个问题。
- 它不会自行终止。 但是,我确信我的模型会执行此操作,一旦所有乘客就座,它就会终止,并且我知道它在所有正常运行中都会执行此操作。
- 显示元素 我已移除显示器,并且模拟中没有显示元素
- 模型输出 我的模型输出写入到一个文件ModelOutput.txt中,每次都使用相同的名称,正常运行时工作正常。
- 外部库 我认为这可能是问题所在。我导入的唯一库是标准 java 库,例如 java.util.Random 或 java.util.list,以及许多 repast 库。这些可能是问题所在吗?如果是这样,我如何将它们移到其他地方,同时仍然能够访问它们?我看到一些关于将它们移动到 lib 目录中的信息,但不太明白如何操作。
感谢您的帮助!
最佳答案
使用 JRE > 11 时会出现此错误。(请注意,在进行批处理运行时,使用 PATH 中的第一个“java”,这可能不是 Eclipse 使用的。)
请参阅此处的常见问题解答条目以获取解决方案:
可以将此处指定的参数添加到批处理运行 GUI 的“JVM 参数”文本框中。
关于java - 执行批量运行时出现错误,错误 : InstanceRunner - Error while running model,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72060673/