【问题标题】:Dynamically load a jar [duplicate]动态加载一个罐子[重复]
【发布时间】:2013-05-24 12:31:17
【问题描述】:

我的应用程序需要根据请求动态加载/卸载一些组件(jar 文件)。例如,我有 abc.jar 和 xyz.jar 并且我的应用程序应该能够根据需要加载/卸载 abc.jar 或 xyz.jar 或用不同版本的 jar 替换这些 jar。是否有任何方法可以动态加载/卸载 jar 文件(即无需重新启动服务器)?

在网上阅读时,我对 osgi 的想法很少,但我不想进入可能会变得复杂的框架。有没有简单的方法来实现这一点?我正在使用 Java、J2EE 和 Jetty 6 服务器。

【问题讨论】:

    标签: java jar classloader


    【解决方案1】:

    看看 Bracha 和 Liang 的开创性论文“Dynamic class loading in the Java virtual machine”。他们解释了类加载器是如何工作的,以及如何使用接口和类加载器来支持动态变化。值得一读(你应该可以通过谷歌搜索论文的名称来获得免费的 PDF)!

    【讨论】:

      【解决方案2】:

      您可以使用共享库并在您的应用程序服务器类/库路径中引用相同的内容。

      您可以随时更改放入其中的 jar 的版本。

      【讨论】:

        猜你喜欢
        • 2014-12-31
        • 2014-08-06
        • 1970-01-01
        • 2012-12-28
        • 1970-01-01
        • 2013-06-19
        • 1970-01-01
        • 2019-03-03
        • 2020-03-15
        相关资源
        最近更新 更多