# rcoj-code-sandbox **Repository Path**: akaiuo/rcoj-code-sandbox ## Basic Information - **Project Name**: rcoj-code-sandbox - **Description**: RC代码沙箱 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2024-10-26 - **Last Updated**: 2026-04-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RCOJ 代码沙箱 RCOJ Code Sandbox 是一个基于 Java 和 Docker 实现的在线代码执行沙箱系统,支持远程编译运行用户提交的 Java 代码。 ## 功能特性 - **Docker 隔离执行**:通过 Docker 容器隔离用户代码,保障系统安全 - **双模式运行**:支持 Docker 沙箱和本地 JVM 两种执行模式 - **代码编译运行**:自动编译用户提交的 Java 源代码并执行 - **多输入测试**:支持批量输入测试用例 - **资源限制**:支持超时时间限制 - **安全沙箱**:内置安全Manager,限制文件读写权限 ## 技术栈 - Java 17 - Spring Boot - Docker (Docker Java Client) - Maven ## 快速开始 ### 环境要求 - JDK 17+ - Docker - Maven 3.8+ ### 构建项目 ```bash ./mvnw clean package -DskipTests ``` ### 运行项目 ```bash ./mvnw spring-boot:run ``` 或直接运行 jar 包: ```bash java -jar target/rcoj-code-sandbox-1.0-SNAPSHOT.jar ``` ## API 使用 ### 健康检查 ```http GET /health ``` ### 执行代码 ```http POST /executeCode ``` **请求头**: | 参数 | 说明 | |------|------| | auth-header | 认证头部名称(默认:auth) | | auth-secret | 认证密钥 | **请求体 (ExecuteCodeRequest)**: ```json { "code": "public class Main { public static void main(String[] args) { System.out.println(\"Hello World\"); } }", "inputList": [""], "lang": "java", "time": 1000 } ``` | 字段 | 说明 | 类型 | |------|------|------| | code | Java 源代码 | String | | inputList | 输入测试用例