Skip to content

Latest commit

 

History

History
28 lines (23 loc) · 1022 Bytes

README.md

File metadata and controls

28 lines (23 loc) · 1022 Bytes

OnlineExecutor

Java代码在线执行器

参考《深入理解Java虚拟机》9.3 实战:自己动手实现远程执行功能

功能

Done

  • 自定义ClassLoader从而实现重复加载同一个类
  • 自定义HackSystem用于替换默认的输出流
  • 编写ClassModifier用于将字节码中的java/lang/System替换为com/shao/HackSystem
  • 编写StringSourceCompiler,实现了动态编译功能。在内存中直接将源代码字符串编译为字节数组
  • 使用Spring Boot、Spring MVC搭建了一个系统,可以在线编译、运行Java代码

TODO

  • 完善HackSystem的并发同步问题

如何运行

Maven

mvn spring-boot:run 

运行截图

技术细节

TODO

CHANGE LOG

CHANGE LOG