ras*_*orp 5 java classloader jrebel
我最近看到了JRebel的在线演示,其中他们解释了他们的产品做了什么,在其中一张幻灯片中他们提到他们没有使用类加载器(见下面的截图).
我有一些项目,我使用类加载器在运行时动态加载类,例如依赖注入(如我开发的Maker Factory框架).我认为在Java中加载类的唯一方法是使用类加载器.

免责声明:我参与了 JRebel 开发
从技术上讲,可以使用一些不安全的魔法来绕过类加载器,并且 JVM 在创建运行时匿名类(在 Java 8 中)时利用 lambda 来利用它。
然而,JRebel 实际上与现有的类加载器集成,并且不会创建新的类加载器 - 这就是幻灯片的含义。当 JRebel 必须重新加载类时,它不会删除现有的类加载器。相反,它会在现有类加载器中加载类并对其进行版本控制。