情報系院生の活動日誌

いまはもう社会人

java使用時に`atcoder-tools test`で発生するエラーに対処した

atcoder-toolsというツールをありがたく使わさせていただいている。

github.com

各問のテストケースに対して、テストを自動で走らせてくれる機能があり、以下のコマンドで実行できる。

atcoder-tools test

しかし、java使用時に上記コマンドがうまく行かなかった。java Mainが実行されることを期待しているが、./Main.classが実行されるようだ。

OSError: [Errno 88] Malformed Mach-o file: './Main.class'

やったこと

力技でどうにかした。

run.sh の用意

#!/bin/sh
chmod 777 Main.class
java Main

atcoder-tools gen時にrun.shを作成

[codestyle]
lang='java'
[postprocess]
exec_on_each_problem_dir='touch run.sh;chmod 777 run.sh;echo "#!/bin/sh" >> run.sh;echo "chmod 777 Main.class" >> run.sh;echo "java Main" >> run.sh'

Test時にrun.shを実行

javac main.java; atcoder-tools test -e "./run.sh"