我的应用程序需要一些组件(jar 文件)来根据请求动态加载/卸载。例如,我有 abc.jar 和 xyz.jar,我的应用程序应该能够根据需要加载/卸载 abc.jar 或 xyz.jar,或者用不同版本的 jar 替换这些 jar。是否有任何方法可以动态加载/卸载 jar 文件(即无需重新启动服务器)?
在网上阅读时,我对 osgi 的想法很少,但我不想进入可能会变得复杂的框架。有没有简单的方法来实现这一点?我正在使用 Java、J2EE 和 Jetty 6 服务器。
我的应用程序需要一些组件(jar 文件)来根据请求动态加载/卸载。例如,我有 abc.jar 和 xyz.jar,我的应用程序应该能够根据需要加载/卸载 abc.jar 或 xyz.jar,或者用不同版本的 jar 替换这些 jar。是否有任何方法可以动态加载/卸载 jar 文件(即无需重新启动服务器)?
在网上阅读时,我对 osgi 的想法很少,但我不想进入可能会变得复杂的框架。有没有简单的方法来实现这一点?我正在使用 Java、J2EE 和 Jetty 6 服务器。
看看Bracha 和 Liang的开创性论文“ Java 虚拟机中的动态类加载”。他们解释了类加载器是如何工作的,以及如何使用接口和类加载器来支持动态变化。值得一读(你应该可以通过谷歌搜索论文的名称来获得免费的 PDF)!
您可以在应用程序服务器类/库路径中使用共享库并引用相同的内容。
您可以随时更改放置在其中的罐子的版本。