Java:分离JAR版本

时间:2010-03-13 07:58:48

标签: java jar executable executable-jar

我正在为现有的Java程序开发Java插件。现有程序使用特定版本的eclipse.uml2。*,我的插件也是如此。不幸的是我的插件需要更新的版本。

为了运行插件,我需要将其导出到Jar文件中(所有jar都已打包)。然后程序执行它。但不知何故,新的eclipse.uml2。*似乎干扰了该程序 - >它崩溃了。

有没有办法“分离”两个版本的jar文件?

3 个答案:

答案 0 :(得分:1)

一种方法是在您的应用程序中使用自定义类加载器。这很容易引入难以追踪的错误,所以要小心。

http://www.devx.com/Java/Article/31614/1954

答案 1 :(得分:1)

这是OSGi试图解决的确切问题。将Java应用程序重新编写到另一个插件平台是否可行?

答案 2 :(得分:0)

这很难。您可以想象使用类加载器技巧来允许两个版本的eclipse.uml.*类加载到同一个JVM中。但就JVM而言,它们将是不同的类集,并且您的插件和基础Java应用程序将无法交换实例。

重建(并且必要时修改)基本程序或插件可能更简单(并且风险更小......在成功的可能性方面),以便它们都使用相同版本的{{1类。