【项目】在线OJ项目总结

1.项目简介

仿照leetcode来写一个在线判题系统的项目,用户可以实现通过url在浏览器访问试题列表、选中相关题目并编写代码、提交到服务器编译运行、将结果反馈给浏览器展示在页面等相关操作。

2.核心功能

  • 题目列表页面,表示当前系统中的所有题目

  • 题目详情页面,显示题目的具体要求和代码模板,提供一个编辑框供用户来编辑代码,提交并显示出运行结果;

  • 代码的编译、运行、测试功能,能够针对用户提交的代码,进行编译运行,并自动执行测试用例,返回测试结果;

3.开发环境

  • maven :使用Maven来管理依赖,打包项目;
  • MySQL:使用MySQL数据库作为业务数据的存储;
  • Servlet:每个页面调用后台接口都需要使用哪些Servlet来完成业务;
  • IDEA:进行Java代码的编写
  • Linux:进行环境的部署

4.项目使用技术

  • JDBC:用来实现数据库的操作;
  • Runtime多进程:通过代码控制jdk进行编译和运行;
  • Java:利用了Java的基础语法,继承、单例模式、异常等;
  • Gson:用来在Java对象和JSON数据之间的转换;

5.项目模块介绍

5.1 编译模块

目标:给定以Java代码文件(这里只考虑单个文件的情况,不考虑多文件复杂工程的情况),能够通过代码并并控制jdk进行编译和运行

第一步:借助一个类:CommandUtil,让Java代码能够去执行一个具体的指令

Runtime类和Process类:这里我们需要在当前程序中调用另一个现成的系统命令,这样就利用利用Runtime类和Process类,可以创建一个子进程,并且让子进程来执行一个相关的命令(编译:javac,运行:java)


                
  • 6
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值