我正在尝试使用 Eclipse 创建可运行的 JAR,但遇到了问题。 Eclipse 工作区包含两个独立的项目,它们依赖于同一个库。我可以创建可运行的 JAR,但问题是当我运行它时收到 java.lang.NoSuchMethodError
异常。
我相信我收到了 java.lang.NoSuchMethodError
异常,因为 libraries are different versions .是否有解决此问题的通用解决方案?如果没有,您会建议我做什么?
最佳答案
如果主要版本号发生变化,则意味着向后兼容性可能发生了变化。
您可以尝试使用最新版本并希望他们只是添加了方法和旧的工作方式,但即使没有抛出 NoSuchMethod 异常也不能保证(也许使用新的 API 您应该调用不同的方法来得到相同的结果)。
我会联系图书馆的供应商,询问他们兼容性是否被破坏。如果他们不回答或者它坏了,而你有源代码,那么唯一的可能性就是重构其中一个库(可能是 1.0); v.g.将其全部放入新数据包 v1 中。然后,您将不得不更改依赖于它的项目。
如果以上方法均无效,那么解决方案将是一个 OSGi 容器,或者将项目 A 和项目 B 设置为两个不同的可执行文件,并将项目 B 设置为响应项目 A 消息的服务器。凌乱
关于java - 具有重复依赖项的可运行 JAR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7122324/