HUSTOJ出现RuntimeError,正确姿势。

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,请跳转

编辑于 2018-06-09 15:06