Skip to content
dxx114514-stack edited this page Oct 1, 2026 · 3 revisions

CliJudge

轻量级命令行本地评测系统。单个 C++17 可执行文件完成出题、造数据、评测、办比赛全流程,JSON 数据存储,Windows / Linux 双平台。

特性

  • 双平台沙箱 — Windows:Job Object + 受限令牌 + Low IL;Linux:namespaces + seccomp + 只读根文件系统 + RLIMIT(含加固环境自动降级,见 沙箱与安全)
  • 单二进制、零服务 — 无需数据库或守护进程,数据就是 data/ 下的 JSON
  • LemonLime / NoldOJ 兼容 — CDF 比赛导入导出、testlib/lemon SPJ、题目包 zip/json 互通
  • 多题型 — traditional / answers_only / interaction / communication / communication_exec,子任务计分与依赖
  • 多语言 — 内置 C/C++/Python/Java/JavaScript,custom_languages 可注册任意语言(见 自定义评测语言)
  • 测试点生成器 — 题目附带生成器,每次评测前按测试点编号生成 data.in / data.out
  • 比赛与报告 — 排行榜、HTML 比赛报告、CDF 双向交换
  • 界面语言 — .cjl 语言包,displaylang 联网切换(见 显示语言)

90 秒上手

# Windows 下为 clijudge.exe,Linux 下为 clijudge
clijudge problem create "A + B Problem" -describe statement.md -exampleio in.txt out.txt
clijudge problem testdata 1 create in.txt out.txt 1000 256 50
clijudge problem submit 1 ac.cpp --as alice    # → Status: AC(退出码 0)
clijudge ide run main.cpp in.txt               # 即写即跑

完整流程见 快速开始。

文档地图

页面 内容
快速开始 编译、建题、评测、IDE 第一次体验
命令参考 · 题目 problem 模块全部命令与选项
命令参考 · 比赛 contest 模块与 CDF 导入导出
命令参考 · 其它 help / submit / article / ide / displaylang、退出码、状态表
评测机制 语言识别、比较模式、子任务、评测配置
自定义评测语言 custom_languages 注册任意扩展名
沙箱与安全 双平台隔离层、信任边界、并发安全
数据存储 目录结构、config.json、迁移与锁
显示语言 .cjl 语言包管理
构建与测试 CMake/g++、冒烟测试、CI 与发布
FAQ 常见问题与故障排除

相关链接

  • 仓库 · Releases · Issues
  • 仓库内文档:README.md、docs/cmdline.md(完整命令参考)、docs/(网页版文档)

Clone this wiki locally