Java 双绑定jar依赖项

Java 双绑定jar依赖项,java,jar,Java,Jar,我有一个Java项目(项目A),我在其中加载其他JAR。这些JAR(项目B)都有一个实现应用程序接口的类。为了了解该接口,项目b必须将项目A作为库 现在,当启动项目A时,它加载项目B的jar,查找应用程序类,获取构造函数并尝试创建对象,但失败: B类中的构造函数创建了一个对象,该对象实现了项目B已知的接口,尽管该接口与项目A中的接口相同,但这两个接口似乎并不相等 如何解决这种双绑定依赖关系 编辑: 以下是我尝试在项目A中创建应用程序的方式: clazz = Class.forName(class

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

现在,当启动项目A时,它加载项目B的jar,查找应用程序类,获取构造函数并尝试创建对象,但失败: B类中的构造函数创建了一个对象,该对象实现了项目B已知的接口,尽管该接口与项目A中的接口相同,但这两个接口似乎并不相等

如何解决这种双绑定依赖关系

编辑: 以下是我尝试在项目A中创建应用程序的方式:

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

系数=(构造函数将接口放在另一个jar中,由项目A和B引用。

AFAIK,Java自动处理此类循环依赖关系。您如何运行程序并加载jar文件?您可以在不同的jar中拥有两个相互依赖的类,而不会出现问题。请参见编辑:我运行项目A,其中加载jar文件并加载具有给定名称的类。什么是“项目”?Eclipse项目?这是OSGi吗?是否还有其他类加载器魔法?尝试创建一个非常小的示例并将其发布到此处。每个类加载器的类都是唯一的。因此,如果出现类似“类X不等于类X”的错误然后,您可以让两个不同的类加载器加载类X。这应该不是必需的