Java WebIDE:CodeMirror+Vue+JavaCompiler
课上JavaEE,老师直接用了大佬的教程。
Vue + Spring Boot 项目实战:
https://blog.csdn.net/Neuf_Soleil/article/details/88925013
项目大部分参考了这个,里面的代码可下载秒运行,很赞。
java在线编译功能:
https://blog.csdn.net/weixin_40826724/article/details/98344758
Vue CodeMirror 参考
https://blog.csdn.net/weixin_43080277/article/details/83860629
界面图
前端created方法从加载页面开始执行,向后台请求题目
后端接收,返回题目
前端点击运行,调用run方法
后端接收
简单介绍一下后台流程
1.后台接收到String类型的javaSource(源码)
2.调用JAVA编译类(输入:java类名,方法名,代码)(输出:class文件至本地)
3.装载class文件到内存,创建对象
4.调用对象的方法(输入方法名,参数)(输出:调用结果)
5.返回结果
//JAVA编译类
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
//中间省略步骤若干,主要负责下面编译任务设置参数(比如class文件应该存到哪,编译参数是什么)
//compiler 生成编译任务
JavaCompiler.CompilationTask task=compiler.getTask(null,fileManager,null,options,null,files);
//执行,生成class文件
task.call();
//装载类并实例化到内存
Class.forName(className);
//过程:获取对象,执行对象方法 现在就是获取对象方法,然后执行即可 (参数为方法名、参数)
Method method=runClass.getMethod(methodName,String[].class);
//调用方法
method.invoke(null,(Object) args);
//返回到前端
想了解一下具体JavaCompiler类编译流程和参数,参考
https://blog.csdn.net/u010398771/article/details/90474813
项目不足:
- 写了个套娃程序。
2.编辑器里的java类名不能改变,方法必须是static。
3.没有安全设计,浏览器端可以运行任意代码
4.没有限制单个用户的资源占用,理论上可以占用所有资源
5.篇幅限制省略500点不足
Java WebIDE:CodeMirror+Vue+JavaCompiler相关推荐
- Java项目:springboot+vue大学生健康档案管理系统
作者主页:夜未央5788 简介:Java领域优质创作者.Java项目.学习资料.技术互助 文末获取源码 项目介绍 大学生健康档案管理系统,目前演示数据中主要包括三种角色:管理员.医生.学生:其中管理员 ...
- Java项目:Springboot+vue在线考试系统
作者主页:夜未央5788 简介:Java领域优质创作者.Java项目.学习资料.技术互助 文末获取源码 在线考试系统 项目介绍 该项目是一个前后端分离项目,后端使用 SpringBoot,前端使用 V ...
- Java项目:springboot+vue电影院会员管理系统
作者主页:夜未央5788 简介:Java领域优质创作者.Java项目.学习资料.技术互助 文末获取源码 项目介绍 本项目代码架构设计简单,注释齐全,结构清晰,适合同为java初学者参考. cinema ...
- Java项目:springBoot+Vue汽车销售管理系统
作者主页:夜未央5788 简介:Java领域优质创作者.Java项目.学习资料.技术互助 文末获取源码 项目介绍 本项目基于spring boot以及Vue开发,为前后端分离的项目.针对汽车销售提供客 ...
- java socket中属性详解_前端开发:关于Vue组件中的data属性值是函数而不是对象的详解...
最近在搞关于前端开发的基础知识归纳,发现了不少经典知识点,那么本篇博文就来分享一个经典的知识点:Vue组件中的data属性值为什么是函数而不是对象.首先来了解一下Vue组件的使用理念:在Vue组件使用 ...
- Java毕业设计:基于springboot+java+vue的健身房课程预约信息网站
运行环境 开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 数据库工具:Navicat11 开发软件:eclipse/myeclip ...
- Vue实战篇一: 使用Vue搭建注册登录界面
系列文章目录 Vue基础篇一:编写第一个Vue程序 Vue基础篇二:Vue组件的核心概念 Vue基础篇三:Vue的计算属性与侦听器 Vue基础篇四:Vue的生命周期(秒杀案例实战) Vue基础篇五:V ...
- java项目:基于springboot+vue的实验室预约管理系统 nodejs
本文从用户的功能要求出发,建立了实验室管理系统,系统中的功能模块主要是实现管理员:首页.个人中心.实验室管理.用户管理.实验室申请管理.设备管理.设备报备管理.设备申请管理.消耗品管理.消耗品领取管理 ...
- JAVA计算机毕业设计基于vue技术的汽车维修检测系统设计与实现源码+数据库+系统+lw文档
JAVA计算机毕业设计基于vue技术的汽车维修检测系统设计与实现源码+数据库+系统+lw文档 JAVA计算机毕业设计基于vue技术的汽车维修检测系统设计与实现源码+数据库+系统+lw文档 本源码技术栈 ...
最新文章
- SQL注入详解和简单绕过原理
- window环境变量
- 大学c语言基本程序,一个大学C语言试题的简单实现--员工信息管理程序
- 美赛整理之投影寻踪模型及其求解
- python变量、运算符、要求从键盘输入用户名和密码,校验格式是否符合规则,如果不符合,打印出不符合的原因,并提示重新输入练习
- WCF技术剖析之九:服务代理不能得到及时关闭会有什么后果?
- Android Bitmap保存时背景变为黑色的问题
- AI上推荐 之 xDeepFM模型(显隐性高阶特征交互的组合策略)
- nero linux4 序列号,Nero Linux 4 Nero Linux v4.0.0.0b
- 浅谈JAVA工作流的优雅实现方式
- 三代测序组装工具Canu学习笔记
- 【Course 2 改善深度神经网络】Week 1 深度学习的实用层面
- 3到5年工作经验是如何回答面试中被问到的Java集合框架问题
- Cloud Foundry 运行bosh create-env时报错: TLS handshake timeout
- 7-3 计算职工工资
- c语言智能小车项目的感想,基于51单片机的遥控智能小车实作心得
- 清华计算机专业考研经验谈
- LeeCode 5454 前缀和 + 暴力
- Confluence 你可以对编辑器中的表格进行什么样的操作
- Linux中网络连接不上解决方案大全
热门文章
- debain 10 命令行安装vmtools
- 电子采购订单与手动采购订单有什么区别?
- IBM N系列存储和NetApp FAS之间的对应关系
- 输出杨辉三角形的前n行
- c语言用循环输出塔状五行,从键盘上输入一个正整数n,请按照以下五行杨辉三角形的显示方式, 输出杨辉三角形的前n行。请采用循环控制语句来实现。...
- 安卓易剪多轨版_易剪多轨版安卓
- 文档编号与文档版本号的作用
- 《数据密集型应用系统设计》读书笔记——第一部分 数据系统基础
- 中纪委“点名”《哪吒》:这个人最该被问责
- android手机的智能备忘录,智能备忘录app