我被要求构建一个能够在运行时加载新代码(扩展)的java系统.在代码运行时如何重新加载jar文件?或者我如何装一个新的罐子?
显然,由于恒定的正常运行时间很重要,我想添加在其中重新加载现有类的能力(如果它不会使事情复杂化太多).
我应该注意什么?(把它想象成两个不同的问题 - 一个关于在运行时重新加载类,另一个关于添加新类).
假设我有一个项目K.
K取决于lib.jar
在lib.jar,有一个名为的类x.y.z.Foo
如果我x.y.z.Foo在K中创建相同的类,那么在我创建实例的这个项目中Foo,现在将JVM用Foo在K而不是lib.jar?
如果它不稳定或取决于某些东西,如何确保Foo应该使用K的版本而不是lib.jar?