HUSTOJ出现RuntimeError,正确姿势。
例如你在一个64位linux中安装,运行Java报错(Python 或者别的什么其他语言,或者是32位的Linux系统,道理是一样的,请耐心看完!)。
Runtime Error:[ERROR] A Not allowed system call: runid:2501 CALLID:104
TO FIX THIS , ask admin to add the CALLID into corresponding LANG_XXV[] located at okcalls32/64.h ,
and recompile judge_client.
if you are admin and you don't know what to do ,
tech support can be found on 首页-程序员直销-淘宝网
那么,需要找到
core/judge_client/okcall64.h
(如果你是32位,你就需要找okcall32.h)
其中
int LANG_JV[256] ={0,...........,0}
这个数组,J表示Java。(Y表示Python,R表示Ruby,请发挥想象力)
在首尾两个0中间的部分,加上104,就是报错信息中的CALLID.
类似
int LANG_JV[256] ={0,104,...........,0}
然后重新编译覆盖judge_client到/usr/bin/judge_client
方法:在core目录下执行sudo bash make.sh
然后再去运行,然后很可能得到一个新的RE,新的CALLID
依次类推,继续加,到不报错为止。
如果你觉得一个一个找太麻烦,更进一步以debug模式+采样模式运行 :
sudo judge_client 2501 0 /home/judge debug J
其中J代表Java
将会在输出的末尾看到:
result=4
int LANG_JV[256]={0,2,3,4,5,9,10,11,12,13,14,21,56,59,89,97,158,202,218,231,273,0};
把这个数组的内容整合进入okcalls64.h或okcalls32.h,就可以了。
* 请使用openjdk-7-jdk作为java编译器,安装命令sudo apt-get install openjdk-7-jdk
* Pascal编译器安装命令sudo apt-get install fp-compiler
* 广大CENA用户请注意,hustoj 不支持*.ans文件,只支持*.in/*.out文件
以上是How,如果想知道Why,请跳转