我正在为现有的Java程序开发Java插件。现有程序使用特定版本的eclipse.uml2。*,我的插件也是如此。不幸的是我的插件需要更新的版本。
为了运行插件,我需要将其导出到Jar文件中(所有jar都已打包)。然后程序执行它。但不知何故,新的eclipse.uml2。*似乎干扰了该程序 - >它崩溃了。
有没有办法“分离”两个版本的jar文件?
答案 0 :(得分:1)
一种方法是在您的应用程序中使用自定义类加载器。这很容易引入难以追踪的错误,所以要小心。
答案 1 :(得分:1)
这是OSGi试图解决的确切问题。将Java应用程序重新编写到另一个插件平台是否可行?
答案 2 :(得分:0)
这很难。您可以想象使用类加载器技巧来允许两个版本的eclipse.uml.*
类加载到同一个JVM中。但就JVM而言,它们将是不同的类集,并且您的插件和基础Java应用程序将无法交换实例。
重建(并且必要时修改)基本程序或插件可能更简单(并且风险更小......在成功的可能性方面),以便它们都使用相同版本的{{1类。