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
ロボコードで 35 ラウンド未満の戦闘を実行する場合、これは正常に機能しますが、35 ラウンド以上の戦闘を実行しようとすると、コードがハングし、Java コードに戻りません。
バッチ ファイルをディスプレイと共に実行するように変更して実行することで、さらに調査を行いました。これにより、戦闘を監視し、どこにぶら下がっているかを調べることができました。35回目のバトルが終わると「35回戦後片付け」に入り、基本的にそこでハングアップ。プログラムは凍結などではなく、次の戦闘を初期化しません。
同様のプロジェクトに取り組んでいる人と話し合ったところ、これらの問題は発生しておらず、この部分でコードが大きく異なることもありません。2 台の異なるマシンで実行してみましたが、両方で同じ結果が得られます。
何かアドバイス?