双绑定jar依赖

时间:2013-08-29 20:23:19

标签: java jar

我有一个Java项目(项目A),我在其中加载其他jar。这些jar(Project B)都有一个类实现了一个应用程序接口。为了知道该接口,项目b必须将项目A作为库。

现在,在启动项目A时,它会加载项目B的jar,查找应用程序类,获取构造函数和trys来创建对象,但是这会失败: B类的构造函数创建了一个实现接口的对象,该接口对项目B来说是已知的,尽管这与项目A中的接口相同,但看起来这两个看起来并不相同。

如何解决这种双重绑定依赖?

编辑: 这就是我尝试在项目A中创建应用程序的方法:

clazz = Class.forName(className, true, loader);
ctor = (Constructor<? extends Application>) clazz.getConstructor();
Application app = ctor.newInstance();

异常发生在第三行,其中app表示类型为SpecificApplication(在加载的jar中定义并实现Application接口),因此无法强制转换为Application。

1 个答案:

答案 0 :(得分:0)

将界面放在另一个jar中,由项目A和B引用。