gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 10:19:56 29 4
gpt4 key购买 nike

我正在运行一个批处理文件,该文件在 Java 中运行 Robocode 中的战斗,然后收集战斗结果。我用来运行批处理文件的代码是:

Process p = Runtime.getRuntime().exec("cmd /c C:\\Users\\Joel\\Documents\\ver5Files\\battle.bat");
p.waitFor();

我的批处理文件的内容是:

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

如果我在 robocode 中运行一场少于 35 轮的战斗,那么效果很好,但是当我尝试运行一场 35 或更多的战斗时,代码会挂起并且永远不会返回到 java 代码。

我通过运行修改批处理文件进行了进一步调查,以便它可以显示,这样我就可以观看战斗并找出它卡在哪里。第35场战斗结束后,就进入“第35轮清理”步骤,基本上就卡在那里了。程序没有被卡住什么的,它只是不会初始化下一场战斗。

我已经与从事类似项目的人讨论过,他们没有遇到这些问题,我们的代码在这部分也没有显着差异。我尝试在两台不同的机器上运行它,但在两台机器上都得到相同的结果。

有什么建议吗?

最佳答案

尝试使用 /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 .

关于java - 从 java 运行批处理文件会导致挂起,但正常运行时不会挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35663621/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com