具有相同类的两个依赖项

时间:2015-04-16 22:00:41

标签: java dependencies classloader netty

我目前正在使用两个依赖项,其中一个包含在jar文件中。这两个依赖关系都使用netty;然而,一个已经过时了。第二个依赖项是使用'Bootstrap#channelFactory()'方法,该方法在netty的其他依赖项版本中不存在。正在加载过时的类,我得到一个'NoSuchMethodError',因为该方法在过时的类中不存在。有没有人有解决方案?

编辑:我实际上正在使用'Bukkit',这是一个软件,可以让你创建一个Minecraft服务器,并使用它的API修改它。这是第一个依赖。 Bukkit使用netty,而提取到jar文件中的其他依赖项也使用netty,但它们是两个不同的版本。

1 个答案:

答案 0 :(得分:0)

我假设您想要从具有相同名称的类中调用方法(如果您不是,请告诉我们)。作为最后的手段,如果需要使用这两个类,可以直接从包中调用该方法。例如,让我们说我有一个名为" TestClass"在包" net.test.program.one"我有另一个名为" TestClass"在包中" net.test.program.two"您可以使用net.test.program.two.TestClass或另一个net.test.program.one.TestClass直接调用该类作为最后的手段,希望这有帮助!

代码示例:

private void doSomething() {
        // Call up-to-date one here
        net.test.program.one.TestClass.method();
        // Call out-dated one here
        net.test.program.two.TestClass.method();
}