Java代码在线执行器
参考《深入理解Java虚拟机》9.3 实战:自己动手实现远程执行功能
- 自定义ClassLoader从而实现重复加载同一个类
- 自定义HackSystem用于替换默认的输出流
- 编写ClassModifier用于将字节码中的
java/lang/System
替换为com/shao/HackSystem
- 编写StringSourceCompiler,实现了动态编译功能。在内存中直接将源代码字符串编译为字节数组
- 使用Spring Boot、Spring MVC搭建了一个系统,可以在线编译、运行Java代码
- 完善HackSystem的并发同步问题
mvn spring-boot:run
TODO