JAVA WEB的大作业想做一个简单的OJ,首先要实现的是拿到一份源代码后怎么去编译,获取编译错误信息,然后在时间限制内运行得到答案,最后比较答案和标准输出是否一致.我用的是windows的批处理程序,到时候用java调用这个程序得到结果.
第一步:
在d盘下建一个叫onlinejudge的文件夹,然后在这个文件夹下建5个文档,分别是a.cpp,answer.txt,in.txt,result.txt,time.txt,分别用来储存源程序,标准输出,输入,程序结果代码(0->AC,1->WA,2->TLE,3->RE,4->CE,TLE和PE还不知道怎么搞),程序运行时间,再建一个文件夹叫result.
第二步:
写一个command.bat的批处理程序,内容是
xcopy /y d:\onlinejudge\a.cpp d:\onlinejudge\result
xcopy /y d:\onlinejudge\in.txt d:\onlinejudge\result
xcopy /y d:\onlinejudge\answer.txt d:\onlinejudge\result
cd /d d:\onlinejudge\result
g++ a.cpp
if not exist a.exe (
g++ a.cpp>error.txt 2>&1
echo 4 >result.txt
xcopy /y d:\onlinejudge\result\result.txt d:\onlinejudge
del /f /s /q d:\onlinejudge\result
exit
)
set /a start_time=(1%time:~9,2%-