我的问题实际上非常简单,但答案可能很复杂。是否可以在运行时动态加载jar-甚至可以替换webcontainer上下文中已加载的jar?在这个特定的情况下,我对Tomcat和Spring MVC的组合很感兴趣,但我想这个技术,如果有的话可以适应其他技术栈。
如果问题的答案是肯定的,那么直接的后续问题是:哪种方法最直接?我知道OSGi,我很确定它可以在web容器中动态加载jar,但我认为这是一个重量级的解决方案。
答案 0 :(得分:1)
我不确定如何正确加载JAR,但您可以在运行时动态加载任何类。如果您感兴趣的是JAR中包含的类,则可以使用类加载器加载这些类。或者更具体地说是JAR类加载器JarClassLoader Class
如果您尝试替换JAR,则该方法可能是替换从该JAR加载的类,并且唯一的方法是,如果对这些类的每个类的引用都是“垃圾回收”。此时,您可以从新位置加载相同的类。Class Unloading