从java运行批处理文件会导致挂起,但在正常运行时则不会

时间:2016-02-26 23:30:09

标签: java batch-file robocode

我正在运行一个批处理文件,它在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;一步,基本上挂在那里。程序没有冻结或任何东西,它只是不会初始化下一场战斗。

我与正在开展类似项目的人讨论过这个问题,他们没有遇到这些问题,我们的代码也没有明显区别于此部分。我尝试在两台不同的机器上运行它,但两者都得到相同的结果。

有什么建议吗?

1 个答案:

答案 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