我正在运行一个批处理文件,它在java中运行Robocode中的战斗,然后收集战斗结果。我用来运行批处理文件的代码是:
cd "C:\robocode"
java -DNOSECURITY=true -Xmx512M -Dsun.io.useCanonCaches=false -cp libs/robocode.jar robocode.Robocode -nodisplay -battle battles\DT_battle.battle -results resultsv5.txt
exit
我的批处理文件的内容是:
<?php
$text = 'Some text';
$anon = function() use (&$text) {
$text .= ' and more...' ;
};
$anon();
print $text; // returns: Some text and more...
如果我在robocode中运行少于35轮的战斗,这样可以正常工作,但是当我尝试运行35或更多战斗时,代码会挂起并且永远不会返回到java代码。
我通过运行修改批处理文件进一步调查,以便它与显示器一起运行,因此我可以观察战斗并找出它挂在哪里。第35次战斗结束后,它进入第35轮清理&#34;一步,基本上挂在那里。程序没有冻结或任何东西,它只是不会初始化下一场战斗。
我与正在开展类似项目的人讨论过这个问题,他们没有遇到这些问题,我们的代码也没有明显区别于此部分。我尝试在两台不同的机器上运行它,但两者都得到相同的结果。
有什么建议吗?
答案 0 :(得分:1)
尝试使用/k
代替/c
并告诉我它是否有效。
好吧,如果你查看cmd.exe命令,你会发现它有很多选项。其中一些是:
/C Run Command and then terminate
/K Run Command and then return to the CMD prompt.
This is useful for testing, to examine variables
您可以找到更多选项here。