项目简介
本项目受LeetCode启发,是一个基于Spring Boot框架构建的在线Java编程平台。它利用Java动态编译、字节码修改、类加载器、反射等技术,为用户提供一个可在线编写、编译和运行Java代码的高效且安全的编程环境。
项目的主要特性和功能
- 动态编译模块:可将客户端传来的Java源代码字符串动态编译成字节码。
- 字节码修改器:能依据Java类文件结构对类的字节码进行修改,如把
System
类的调用替换为自定义的HackSystem
类。 - 运行模块:借助自定义类加载器实现类的加载与热替换,通过反射调用
main
方法运行代码。 - 并发处理:运用
ThreadLocal
实现线程封闭,为每个请求创建独立输出流,解决多用户并发请求执行代码的问题。 - 安全管理:封装Java系统相关功能,对危险方法进行限制使用处理,避免误操作带来的安全风险。
安装使用步骤
- 确保已下载本项目的源码文件。
- 导入项目:使用IDE(如IntelliJ IDEA)导入项目,JDK版本需为1.8。
- 配置环境:根据项目需求配置相关环境变量和依赖库。
- 运行项目:在IDE中运行
OnlineExecutorApplication
类,启动Spring Boot应用。 - 访问平台:打开浏览器,访问
http://localhost:8080
(默认端口),即可使用在线Java编程平台。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】